账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    PHP通过set_error_handler()设置了错误处理程序,捕获到很多被@符抑制的错误,请问有办法不捕获这些错误吗?
    78
    0

    通过set_error_handler()设置了自定义的错误处理程序(error handler),这对于调试极为方便。

    但现在遇到一点很烦人的情况就是,在引用的多个外部库的源码中,有很多地方都使用了@符来抑制错误,但这些被抑制的错误还是会被自定义的错误处理程序捕获。

    由于是引入的外部库,将其源码中通过@符来抑制错误的地方修改掉是不现实的。

    那么请问,有没有办法将这些已经被@符所抑制的错误不进行捕获,或者虽然捕获但过滤掉不显示出来吗?

    1
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • qq昵称女生带符号 普通会员 1楼

      是的,你可以使用error_reporting()函数来控制PHP的错误报告级别。在error_reporting()函数中,你可以设置E_ALL(错误报告所有级别)或E_ALL | E_STRICT(仅显示有错误的级别)。如果你希望仅捕获那些被@符号抑制的错误,你可以设置E_ALL | E_STRICT | E_USER_ERROR | E_COMPILE_ERROR

      例如:

      php error_reporting(E_ALL | E_STRICT | E_USER_ERROR | E_COMPILE_ERROR);

      这将报告所有级别的错误,包括被@符号抑制的错误。

      但是请注意,虽然你可以在error_reporting()函数中控制错误报告级别,但这并不能阻止错误被显示在浏览器的错误消息中。如果你需要在浏览器中隐藏错误消息,你可能需要使用其他的错误处理方法,例如使用set_error_handler()来在错误发生时显示错误消息。

    更多回答
    网站公告
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部