PHP代碼中所產生的異常可被throw語句拋出,并被catch語句捕獲。需要進行異常處理的代碼都必須放入try代碼塊內,每一個try至少要有一個與之對應的catch。當一個異常被拋出時,所在代碼塊后面的代碼將不會繼續執行,此時PHP會嘗試查找第一個能與之匹配的catch。當然,PHP允許在catch代碼塊內再次拋出throw異常。如果一個異常沒有被捕獲,且未使用set_exception_handler()作相應處理的話,PHP將會產生一個嚴重錯誤。
這里有一個關于異常使用的示例。
<?phpfunction 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';還有一個異常嵌套的示例。
<?phpclass 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();用戶可以用自定義的異常處理類來擴展PHP內置的異常處理類。
(全文完)
新聞熱點
疑難解答