php有两种错误处理方式,一种是通过自定义错误,一种是使用抛异常。
根据错误级别可以分为,“可继续”错误,“不可继续”错误
“可继续”错误又分为,需要记录错误,不需要记录错误
原则
“可继续”错误:指错误不影响主线业务执行的级别
“不可继续”错误:指错误影响主线业务执行的级别
“可继续”需要记录错误:指错误不影响主线业务执行,但是需要记录起来
“可继续”不需要记录错误:指错误不影响主线业务执行,而且不需要记录起来
写日志行为,一般情况下是不会影响主线业务的,所以这里的返回值的合法性就是属于“可继续”错误
$ret = $logObj->write("...");
if(!$ret){
}
创建用户行为,这个是属于业务需要的必要逻辑,所以这里的返回值的合法性就是属于“不可继续”错误
$ret = $userObj->create("...");
if(!$ret){
}
计数器功能,这个一般情况下是不影响主线业务的,但是我们需要记录起来日后解决掉
$ret = $counterObj->increase(1);
可继续又不需要记录的错误,就是我们编写代码的时候可以忽略的错误
一般情况下,所以逻辑的错误都做响应的处理
...
“可继续”错误:这种错误我们不要用 Exception 处理,用 trigger_error 处理就好,避免给上游代码增加负担,记录起来就好了
“不可继续”错误:这种错误我们最好用 Exception 处理,不要用 trigger_error 处理,要通知上游错误的发生
“可继续”需要记录错误:这种错误,我们通过 trigger_error 处理后,在 error_log 里就可以捕获到了
“可继续”不需要记录错误:这种错误,我们可以忽略不予理睬
error 级别的自定义错误建议使用 Exception 替代
warning 级别的自定义错误适用于“可继续”需要记录的错误,错误信息会写入到 error_log 里便于日后处理
trigger_error('[错误信息]', E_USER_ERROR);
throw new Exception('[异常信息]', [异常码]);