Jeżeli wyjątek nie zostaje pochwycony, zostaje wyświetlona informacja niesiona z wyjątkiem, wraz z jednoczesnym zatrzymywaniem wykonywania skryptu w miejscu jego wystąpienia. Powinieneś już wiedzieć bardzo dużo na temat wyjątków, przedstawię jeszcze jak to działa w praktyce.
<?php class MyException extends Exception {} echo 'Test 1'."\n"; try { throw new MyException(); } catch( MyException $e ) { // Ten kod zostanie wykonany echo '1. MyException'."\n"; } catch( Exception $e ) { // pominięty ponieważ blok powyżej został wykonany echo '1. Exception'."\n"; } // Dalszy kod wykonany :) echo 'Test 2'."\n"; try { throw new Exception(); } catch( MyException $e ) { // Ten kod zostanie pominięty, nie pasuje do wyjątku echo '2. MyException'."\n"; } catch( Exception $e ) { // Ten kod zostanie wykonany echo '2. Exception'."\n"; } // Dalszy kod wykonany :) echo 'Test 3'."\n"; try { throw new MyException(); } catch( Exception $e ) { // Ten kod zostanie wykonany, ponieważ MyException dziedziczy Exception echo '3. Exception'."\n"; } // Dalszy kod wykonany :) echo 'Test 4'."\n"; try { // tu nie będzie wyjątku $sNull = null; } catch( Exception $e ) { // pominięty, ponieważ nie ma wyjątku echo '4. Exception'."\n"; } echo 'Koniec'."\n"; ?>
Proponuje abyś sam uruchomił ten kod i wyciągną wnioski patrząc na źródło i efekt wyświetlony w przeglądarce. Chyba ten przykład rozwiał wszelkie Twoje wątpliwości, dotyczące działania wyjątków.
Leave a reply