php 异常处理
大家讲道理
大家讲道理 2017-05-16 13:02:45
0
3
446
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/webroot/public/unserialize.php on line 31

为什么没有执行输出catch?

大家讲道理
大家讲道理

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

Antworte allen(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...

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage