神的尾巴

全栈工程师、独立开发者

0%

实现后端异常监控(PHP)

异常捕获

php中存在异常和错误,这是一个比较坑的设定,可能为了早期方便开发,不像JAVA一律使用异常

异常级别的说明见官方文档预定义常量

PHP用户自定义处理异常错误主要有3个方法

  1. set_error_handler,处理非中断型错误,例如用户发起的trigger_error,访问未定义数组的key(warning)等
1
2
例如: 
trigger_error('test', E_USER_ERROR);
  1. set_exception_handler,处理未捕获的异常,没在try/catch中抛出
1
2
例如: 
throw new ErrorException('error');
  1. register_shutdown_function,部分致命错误,无法通过error_handler和exception_handler获取,通过注册终止函数,在终止后调用error_get_last来获取未捕获的的错误
1
2
例如(语法错误):
$ab if(...

获取代码片段

使用SplFileObject提升大文件读取效率,如果是Exception的异常信息,能直接获取到对应的文件和行数,针对手动上报的,通过调用栈获取到调用的指定文件和代码行数

因为代码片段中有<、>等字符,需要进行html encoding

觉得对你有帮助的话,请我喝杯咖啡吧~.