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內置的異常處理類。
(全文完)
新聞熱點
疑難解答