1. 遇到非代码的错误,而是异常
我们都知道PHP代码层面上的报错有notice,warning,error等等
但是这些错误我们都是难以捕获的(就是我们认为代码会一切正常,谁知它却报了个Bug)
而在某些情况下我们是会遇到另一种情况:
- 文件找不到的话,我代码改怎么写
- 数据库连接失败,我接下去代码要怎么写
- 调用第三方接口,结果获取失败了,代码要怎么写
面对这些情况,我们最好调用 try-catch 去处理,这样很多未知的错误我们都可以捕获到
<?php
try{
//查找文件
//调用各种接口
//数据库连接等等
}catch(Exception $e){
//这里写捕获异常的逻辑
}
其次 try-catch 是可以嵌套的使用的,
另外,还可以使用 try-catch-finally三层嵌套,其中try 中return 后finally会继续执行,如果finally中也有 return ; 则最终返回值为 finally 中 return 的值
try 中die 或exit后finally不会执行
try{
//业务逻辑
}catch(Exception $e){
//时刻准备着,解Exception
}finally{
//这里return更优先
}
2.set_error_handler
set_error_handler 函数可以让用户自己处理/自定义错误处理方法
set_error_handler(error_function,error_types)
参数 | 描述 |
---|---|
error_function | 必需。规定发生错误时运行的函数。 |
error_types | 可选。规定在哪个错误报告级别会显示用户定义的错误。默认是 "E_ALL"。 |