异常捕获
php中存在异常和错误,这是一个比较坑的设定,可能为了早期方便开发,不像JAVA一律使用异常
异常级别的说明见官方文档预定义常量
PHP用户自定义处理异常错误主要有3个方法
- set_error_handler,处理非中断型错误,例如用户发起的trigger_error,访问未定义数组的key(warning)等
1 | 例如: |
- set_exception_handler,处理未捕获的异常,没在try/catch中抛出
1 | 例如: |
- register_shutdown_function,部分致命错误,无法通过error_handler和exception_handler获取,通过注册终止函数,在终止后调用error_get_last来获取未捕获的的错误
1 | 例如(语法错误): |
获取代码片段
使用SplFileObject提升大文件读取效率,如果是Exception的异常信息,能直接获取到对应的文件和行数,针对手动上报的,通过调用栈获取到调用的指定文件和代码行数
因为代码片段中有<、>等字符,需要进行html encoding