- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) > 編程語(yǔ)言 >
- php中怎么處理錯誤異常
php中怎么處理錯誤異常,相信很多沒(méi)有經(jīng)驗的人對此束手無(wú)策,為此本文總結了問(wèn)題出現的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
php中的錯誤異常怎么處理
每一個(gè)try至少要有一個(gè)與之對應的catch.使用多個(gè)catch可以捕獲不同的類(lèi)所產(chǎn)生的異常.當try代碼塊不再拋出異?;蛘哒也坏絚atch能匹配所拋出的異常時(shí),PHP代碼就會(huì )在跳轉到最后一個(gè)catch的后面繼續執行.當然,PHP允許在catch代碼塊內再次拋出(throw)異常.當一個(gè)異常被拋出時(shí),其后(譯者注:指拋出異常時(shí)所在的代碼塊)的代碼將不會(huì )繼續執行,而PHP就會(huì )嘗試查找第一個(gè)能與之匹配的catch.如果一個(gè)異常沒(méi)有被捕獲,而且又沒(méi)用使用set_exception_handler()作相應的處理的話(huà),那么PHP將會(huì )產(chǎn)生一個(gè)嚴重的錯誤,并且輸出UncaughtException...(未捕獲異常)的提示信息.
/**
*Exception.php
*PHP5內置的異常類(lèi)的屬性與方法
*以下這段代碼只為說(shuō)明內置異常處理類(lèi)的結構,它并不是一段有實(shí)際意義的可用代碼.
*/
classException{
protected$message='Unknownexception';//異常信息
protected$code=0;//用戶(hù)自定義異常代碼
protected$file;//發(fā)生異常的文件名
protected$line;//發(fā)生異常的代碼行號
function__construct($message=null,$code=0);
finalfunctiongetMessage();//返回異常信息
finalfunctiongetCode();//返回異常代碼(代號)
finalfunctiongetFile();//返回發(fā)生異常的文件名
finalfunctiongetLine();//返回發(fā)生異常的代碼行號
finalfunctiongetTrace();//backtrace()數組
finalfunctiongetTraceAsString();//已格成化成字符串的getTrace()信息
//可重載的方法
function__toString();//可輸出的字符串
}
?>
/**
*syntax.php
*/
//語(yǔ)法結構以及分析
//PHP有兩種拋出異常的格式,如下
//【1】try...catch...
try{
//實(shí)行可能有異常的操作,比如數據庫錯作,文件錯作
}catch(Exception$e){
//打印錯誤信息
}
//【2】throw
php中的錯誤異常怎么處理
$message=‘我必須被運行在try{}塊中****現異常的話(huà)我($message)將被返回(傳遞)給catch()里的異常對象的實(shí)例比如上面的$e';
$code=123;//錯誤代碼號,可在catch塊中用$e->getCode();返回我的值123,這樣我就可以自定義錯誤代碼號
thrownewException($message,$code);
//學(xué)JAVA的注意,PHP異常處理沒(méi)有throws
?>
/**
*Example.php
*/
//兩個(gè)實(shí)例掌握PHP異常處理
//例【1】用try...catch
/*PDO連接數據庫,如果沒(méi)看過(guò)PDO,先看下PDO的構造函數,要不跳過(guò)例1看例2*/
$dsn='mysql:host=localhost;dbname=testdb';
$user='dbuser';
$password='dbpass';
try{
$dbh=newPDO($dsn,$user,$password);//創(chuàng )建數據庫連接對象容易出現異常
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’上面有異常的話(huà)就輪不到我了!~
',“\n”;
}catch(Exception$e){
echo‘捕獲異常:',$e->getMessage(),$e->getCode(),“\n
”;//顯示$error和123456
}
echo’繼續執行‘;
?>
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站