如何让你的服务器永远不抛出500
Posted 我想静静~
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何让你的服务器永远不抛出500相关的知识,希望对你有一定的参考价值。
PHP常见错误:
1、调用function参数错误
array_merge([1,2,3],‘‘); -- Warning: array_merge(): Expected parameter 2 to be an array, string given
2、类不存在
Fatal error: Uncaught Error: Class ‘test‘ not found
3、变量未定义
php Notice: Undefined variable
4、数组无匹配下标
PHP Notice: Undefined index: abc
5、数据库入库错误
column not found
data too long for name
Invalid datetime format: 1292 Incorrect datetime value: ‘111‘ for column ‘update_time‘ at row 1
常用的捕获错误方法:
1、try catch捕获数据库错误
try { $TalentModelObj->update($talentInfo,array([‘id‘,‘=‘,$talentId])); return array(‘retcode‘=>StatusCode::$SUCCESS,‘data‘=>$talentId,‘msg‘=>‘编辑候选人信息成功‘); } catch (Throwable $th) { return array(‘retcode‘=>StatusCode::$ERROR,‘data‘=>$th,‘msg‘=>‘编辑失败,错误信息:‘.json_encode($th)); }
2、注册错误回调函数捕获错误
// 设定报错级别为全部 error_reporting(E_ALL); // set_error_handler — 设置用户自定义的错误处理函数 set_error_handler([__CLASS__, ‘appError‘]); // set_exception_handler — 设置用户自定义的异常处理函数 set_exception_handler([__CLASS__, ‘appException‘]); // register_shutdown_function — 注册一个会在php中止时执行的函数,脚本执行完成或者 exit() 后被调用 register_shutdown_function([__CLASS__, ‘appShutdown‘]);
以上是关于如何让你的服务器永远不抛出500的主要内容,如果未能解决你的问题,请参考以下文章
为啥这段代码不抛出 NullPointerException?