PHP函数之trigger_error

在程序开发中,如果我们编码不规范,比如调用不存在的变量、语法错误、少了个逗号,这些都会引起系统报错并进行提示,但是今天,突然发现PHP还有这样一个函数,用于自动触发一个报错提示,并且会将报错信息写入php日志,简单直接。

trigger_error

trigger_error — 产生一个用户级别的 error/warning/notice 信息

说明

bool trigger_error ( string $error_msg [, int $error_type = E_USER_NOTICE ] )

用于触发一个用户级别的错误条件,它能结合内置的错误处理器所关联,或者可以使用用户定义的函数作为新的错误处理程序(set_error_handler())。

该函数在你运行出现异常时,需要产生一个特定的响应时非常有用。

参数error_type可选常量可见PHP预定义常量,找出用户级别报错常量如下

  • E_USER_NOTICE
  • E_USER_WARNING
  • E_USER_ERROR
  • E_USER_DEPRECATED

用法示例

在需要的地方写入下面语句


trigger_error('触发DEPRECATED提示', E_USER_DEPRECATED);
trigger_error('触发NOTICE提示', E_USER_NOTICE);
trigger_error('触发WARNING提示', E_USER_WARNING);
trigger_error('触发ERROR提示', E_USER_ERROR);

执行结果

错误日志

[26-Dec-2017 11:50:12 PRC] PHP Deprecated:  触发DEPRECATED提示 in D:daoyanlocalhostdemo.php on line 968
[26-Dec-2017 11:50:12 PRC] PHP Stack trace:
[26-Dec-2017 11:50:12 PRC] PHP   1. {main}() D:daoyanlocalhostdemo.php:0
[26-Dec-2017 11:50:12 PRC] PHP   2. trigger_error() D:daoyanlocalhostdemo.php:968
[26-Dec-2017 11:50:12 PRC] PHP Notice:  触发NOTICE提示 in D:daoyanlocalhostdemo.php on line 969
[26-Dec-2017 11:50:12 PRC] PHP Stack trace:
[26-Dec-2017 11:50:12 PRC] PHP   1. {main}() D:daoyanlocalhostdemo.php:0
[26-Dec-2017 11:50:12 PRC] PHP   2. trigger_error() D:daoyanlocalhostdemo.php:969
[26-Dec-2017 11:50:12 PRC] PHP Warning:  触发WARNING提示 in D:daoyanlocalhostdemo.php on line 970
[26-Dec-2017 11:50:12 PRC] PHP Stack trace:
[26-Dec-2017 11:50:12 PRC] PHP   1. {main}() D:daoyanlocalhostdemo.php:0
[26-Dec-2017 11:50:12 PRC] PHP   2. trigger_error() D:daoyanlocalhostdemo.php:970
[26-Dec-2017 11:50:12 PRC] PHP Fatal error:  触发ERROR提示 in D:daoyanlocalhostdemo.php on line 971
[26-Dec-2017 11:50:12 PRC] PHP Stack trace:
[26-Dec-2017 11:50:12 PRC] PHP   1. {main}() D:daoyanlocalhostdemo.php:0
[26-Dec-2017 11:50:12 PRC] PHP   2. trigger_error() D:daoyanlocalhostdemo.php:971

总结

通过这个函数发现抛异常并将异常消息写入项目日志的错误日志也是可以通过set_error_handler这个函数来自定义的。

参考资料

原文地址:https://www.cnblogs.com/renzhicai/p/8117312.html