php異常處理技術(shù),頂級異常處理器
更新時間:2012年06月13日 14:43:43 作者:
php對異常的處理與java一樣,用到的是try{}catch(){}
定義頂級異常處理器用到的函數(shù)是
set_exception_handler("My_exception");
這里的My_expection是開發(fā)者自定義的異常處理函數(shù),既頂級異常處理器,只有當程序中沒有函數(shù)來處理異常才有頂級異常處理器來處理異常,如果沒有定義頂級異常處理器,則由系統(tǒng)默認的異常處理器來處理異常
舉例說明:
<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 "輸入成功";
}
}
?>
關(guān)于PHP異常處理 的一個問題
<?php
try {
$a=10/0;
}catch (Exception $e){
echo "拋出異常";
}
?>
以上代碼,并不會輸出“拋出異?!保禽敵隽隋e誤信息:Warning: Division by zero in......
說明:try塊中并沒有拋出異常,而是按照系統(tǒng)默認的錯誤處理機制進行處理
所以能不能捕獲到異常,取決于有沒有真正的拋出異常
set_exception_handler("My_exception");
這里的My_expection是開發(fā)者自定義的異常處理函數(shù),既頂級異常處理器,只有當程序中沒有函數(shù)來處理異常才有頂級異常處理器來處理異常,如果沒有定義頂級異常處理器,則由系統(tǒng)默認的異常處理器來處理異常
舉例說明:
復(fù)制代碼 代碼如下:
<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 "輸入成功";
}
}
?>
關(guān)于PHP異常處理 的一個問題
復(fù)制代碼 代碼如下:
<?php
try {
$a=10/0;
}catch (Exception $e){
echo "拋出異常";
}
?>
以上代碼,并不會輸出“拋出異?!保禽敵隽隋e誤信息:Warning: Division by zero in......
說明:try塊中并沒有拋出異常,而是按照系統(tǒng)默認的錯誤處理機制進行處理
所以能不能捕獲到異常,取決于有沒有真正的拋出異常
相關(guān)文章
php實現(xiàn)QQ空間獲取當前用戶的用戶名并生成圖片
這篇文章主要介紹了php實現(xiàn)QQ空間獲取當前用戶的用戶名并生成圖片的方法,涉及php針對QQ空間及接口調(diào)用的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-07-07PHP 訪問數(shù)據(jù)庫配置通用方法(json)
目的是通過通用類訪問配置文件的方式,提供對數(shù)據(jù)庫連接的動態(tài)獲取和設(shè)置,使開發(fā)時和生產(chǎn)應(yīng)用時都能夠提供靈活的、簡化的、解耦的操作方式,需要的朋友可以參考下2018-05-05php解決crontab定時任務(wù)不能寫入文件問題的方法分析
這篇文章主要介紹了php解決crontab定時任務(wù)不能寫入文件問題的方法,結(jié)合實例形式分析了crontab定時任務(wù)無法正常執(zhí)行的原因與解決方法,需要的朋友可以參考下2019-09-09