php 異常處理
大家讲道理
大家讲道理 2017-05-16 13:02:45
0
3
441
try{
    echo 'try <br/>';
    $mysql = new mysqli('localhost', 'root', '111', 'test');
} catch (Exception $e){
    echo 'catch <br/>';
    echo $e->getMessage();
}

程式碼如上, 出現了異常
輸出結果:
try

Warning: mysqli::mysqli(): (28000/1045): Access denied for user 'root'@'localhost' (using password: YES) in /home/test/its2/web/public/unserialize.php on line 31

為什麼沒有執行輸出catch?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回覆(3)
PHPzhong

你需要告訴mysqli以異常的方式拋出,而不是警告。

mysqli_report(MYSQLI_REPORT_STRICT); // 加上这一行!!!

try{
    echo 'try <br/>';
    $mysql = new mysqli('localhost', 'root', '111', 'test');
} catch (Exception $e){
    echo 'catch <br/>';
    echo $e->getMessage();
}

再次訪問,結果如下:
try
catch
Access denied for user 'root'@'localhost' (using password: YES)

阿神

請分清楚警告和Exception的差別。

PHP中的Warning和Error是PHP提醒開發者程式存在的問題,這個問題不一定要被處理
Exception是屬於應用程式中開發自訂,並且要處理的問題,原則上講Exception是一定要有對應處理的

黄舟

看看這篇 http://www.cnblogs.com/water0...

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板