PHP 코드에서 생성된 예외는 throw
문으로 발생하고 catch
문으로 캡처할 수 있습니다. 예외 처리가 필요한 코드는 try
코드 블록 내에 배치되어야 하며 각 try
에는 해당 catch
이 하나 이상 있어야 합니다. 예외가 발생하면 코드 블록 뒤의 코드는 계속 실행되지 않습니다. 이때 PHP는 첫 번째로 일치하는 catch
을 찾으려고 시도합니다. 물론, PHP는 catch
코드 블록 내에서 throw
예외가 다시 발생하도록 허용합니다. 예외가 포착되지 않고 set_exception_handler()
을 사용하여 적절하게 처리되면 PHP는 치명적인 오류를 생성합니다.
다음은 예외 사용 예입니다.
<code><?php function inverse($x) { if(!$x) { throw new Exception('Division by zero.'); } else { return 1 / $x; } } try { echo inverse(5) . '<br>'; echo inverse(0) . '<br>'; } catch(Exception $e) { echo 'Caught exception: ' . $e->getMessage() . '<br>'; } echo 'hello';</code>
내포된 예외의 예도 있습니다.
<code><?php class MyException extends Exception {} class Test { public function testing() { try { try { throw new MyException('foo.'); } catch(MyException $e) { throw $e; } } catch(Exception $e) { var_dump($e->getMessage()); } } } $foo = new Test; $foo->testing();</code>
사용자는 사용자 정의 예외 처리 클래스를 사용하여 PHP에 내장된 예외 처리 클래스를 확장할 수 있습니다.
(전문 종료)
위에는 관련 내용을 포함하여 예외 처리에 대한 소개 - PHP 매뉴얼 노트가 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.