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?
你需要告訴mysqli以異常的方式拋出,而不是警告。
再次訪問,結果如下:
try
catch
Access denied for user 'root'@'localhost' (using password: YES)
請分清楚警告和Exception的差別。
PHP中的Warning和Error是PHP提醒開發者程式存在的問題,這個問題不一定要被處理
Exception是屬於應用程式中開發自訂,並且要處理的問題,原則上講Exception是一定要有對應處理的
看看這篇 http://www.cnblogs.com/water0...