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教程有興趣的朋友有所幫助。