PHP 异常与错误 —— Throwable
Throwable
官方文档地址: http://php.net/manual/en/class.throwable.php
PHP 支持版本: 7
Throwable 是 PHP 7 中可以用作任何对象抛出声明的基本接口,包括 Expection (异常)和 Error (错误)。
Throwable { /* 抽象方法 */ abstract public string getMessage ( void ) // 获取抛出的消息内容 abstract public int getCode ( void ) // 获取抛出的错误代码 abstract public string getFile ( void ) // 获取产生异常的文件名 abstract public int getLine ( void ) // 获取相关行号 abstract public array getTrace ( void ) // 获取追踪信息,返回数组形式 abstract public string getTraceAsString ( void ) // 获取追踪信息,返回字符串形式 abstract public Throwable getPrevious ( void ) // 返回上一个 Throwable abstract public string __toString ( void ) // 抛出的对象以字符串形式返回,可以用 echo 打印相应结果 }
try { $a =$b+1; } catch (\Throwable $th) {
throw $th; throwError($th->getMessage()); Log::error($th->getTraceAsString()); write_log($th->getTraceAsString(),'.','special_name'); }
1.没有 try,catch ,会报错,然后记录错误日历(public/log/202312/13_error.log)
2.try,catch,catch里放空,不报错,也不记录错误日志
3.try,catch,catch里放
throwError($th->getMessage()); 或 throw $th;【两个效果一样,推荐后面,原生的】
会报错,并记录日志(public/log/202312/13_error.log)
4.try,catch,catch里放
Log::error($th->getTraceAsString());
不会报错,但记录日志(public/log/202312/13_error.log)
5.try,catch,catch里放
write_log($th->getTraceAsString(),'.','special_name');
不会报错,但记录日志(public/log/202312/secial_name_xxxxxx_error.log)