定義頂級異常處理器用到的函數是
set_exception_handler("My_exception");
這裡的My_expection是開發者自定義的異常處理函數,既頂級異常處理器,只有當程序中沒有函數來處理異常才有頂級異常處理器來處理異常,如果沒有定義頂級異常處理器,則由系統默認的異常處理器來處理異常
舉例說明:
復制代碼 代碼如下:
<meta http-equiv="content-type" content="text/html;charset=utf-8" /><?php
set_exception_handler("My_expection");
function My_expection(){
echo "這裡是頂級異常處理器";
}
try{
nohello("hello");
}catch(Exception $e){
throw $e;
}
function nohello($nohello){
if($nohello == "hello"){
throw new Exception("不能輸入hello");
}else{
echo "輸入成功";
}
}
?>
關於PHP異常處理 的一個問題
復制代碼 代碼如下:
<?php
try {
$a=10/0;
}catch (Exception $e){
echo "拋出異常";
}
?>
以上代碼,並不會輸出“拋出異常”,而是輸出了錯誤信息:Warning: Division by zero in......
說明:try塊中並沒有拋出異常,而是按照系統默認的錯誤處理機制進行處理
所以能不能捕獲到異常,取決於有沒有真正的拋出異常