您好,登錄后才能下訂單哦!
php中怎么處理錯誤異常,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
php中的錯誤異常怎么處理
每一個try至少要有一個與之對應的catch.使用多個catch可以捕獲不同的類所產生的異常.當try代碼塊不再拋出異常或者找不到catch能匹配所拋出的異常時,PHP代碼就會在跳轉到最后一個catch的后面繼續執行.當然,PHP允許在catch代碼塊內再次拋出(throw)異常.當一個異常被拋出時,其后(譯者注:指拋出異常時所在的代碼塊)的代碼將不會繼續執行,而PHP就會嘗試查找第一個能與之匹配的catch.如果一個異常沒有被捕獲,而且又沒用使用set_exception_handler()作相應的處理的話,那么PHP將會產生一個嚴重的錯誤,并且輸出UncaughtException...(未捕獲異常)的提示信息.
/**
*Exception.php
*PHP5內置的異常類的屬性與方法
*以下這段代碼只為說明內置異常處理類的結構,它并不是一段有實際意義的可用代碼.
*/
classException{
protected$message='Unknownexception';//異常信息
protected$code=0;//用戶自定義異常代碼
protected$file;//發生異常的文件名
protected$line;//發生異常的代碼行號
function__construct($message=null,$code=0);
finalfunctiongetMessage();//返回異常信息
finalfunctiongetCode();//返回異常代碼(代號)
finalfunctiongetFile();//返回發生異常的文件名
finalfunctiongetLine();//返回發生異常的代碼行號
finalfunctiongetTrace();//backtrace()數組
finalfunctiongetTraceAsString();//已格成化成字符串的getTrace()信息
//可重載的方法
function__toString();//可輸出的字符串
}
?>
/**
*syntax.php
*/
//語法結構以及分析
//PHP有兩種拋出異常的格式,如下
//【1】try...catch...
try{
//實行可能有異常的操作,比如數據庫錯作,文件錯作
}catch(Exception$e){
//打印錯誤信息
}
//【2】throw
php中的錯誤異常怎么處理
$message=‘我必須被運行在try{}塊中****現異常的話我($message)將被返回(傳遞)給catch()里的異常對象的實例比如上面的$e';
$code=123;//錯誤代碼號,可在catch塊中用$e->getCode();返回我的值123,這樣我就可以自定義錯誤代碼號
thrownewException($message,$code);
//學JAVA的注意,PHP異常處理沒有throws
?>
/**
*Example.php
*/
//兩個實例掌握PHP異常處理
//例【1】用try...catch
/*PDO連接mysql數據庫,如果沒看過PDO,先看下PDO的構造函數,要不跳過例1看例2*/
$dsn='mysql:host=localhost;dbname=testdb';
$user='dbuser';
$password='dbpass';
try{
$dbh=newPDO($dsn,$user,$password);//創建數據庫連接對象容易出現異常
echo’如果上面出現異常就不能顯示我了‘;
}catch(PDOException$e){
echo'Connectionfailed:'.$e->__toString();
}
?>
//例[2]try..cathc和throw一起用
try{
$error=’我拋出異常信息,并且跳出try塊‘;
if(is_dir('./tests')){
echo'dosth.';
}else{
thrownewException($error,12345);
}
echo’上面有異常的話就輪不到我了!~
',“\n”;
}catch(Exception$e){
echo‘捕獲異常:',$e->getMessage(),$e->getCode(),“\n
”;//顯示$error和123456
}
echo’繼續執行‘;
?>
看完上述內容,你們掌握php中怎么處理錯誤異常的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。