Karp 的技术博客

PHP异常处理中的黑科技

  前面提到框架中是可以捕获所有的错误和异常的,之所以能实现应该是使用了黑科技,哈哈!其实也不是什么黑科技,主要是三个重要的函数:

1. set_error_handler()

看到这个名字估计就知道什么意思了,这个函数用于捕获错误,设置一个用户自定义的错误处理函数。

  当程序出现错误的时候自动调用此方法,不过需要注意一下两点:
第一,如果存在该方法,相应的error_reporting()就不能在使用了。所有的错误都会交给自定义的函数处理。
第二,此方法不能处理以下级别的错误:E_ERRORE_PARSEE_CORE_ERRORE_CORE_WARNINGE_COMPILE_ERRORE_COMPILE_WARNINGset_error_handler() 函数所在文件中产生的E_STRICT,该函数只能捕获系统产生的一些WarningNotice级别的错误。

  并且他有多种调用的方法:

2. register_shutdown_function()

捕获PHP的错误:Fatal ErrorParse Error等,这个方法是PHP脚本执行结束前最后一个调用的函数,比如脚本错误、die()、exit、异常、正常结束都会调用,多么牛逼的一个函数啊!
通过这个函数就可以在脚本结束前判断这次执行是否有错误产生,这时就要借助于一个函数:error_get_last()
这个函数可以拿到本次执行产生的所有错误。error_get_last();

返回的信息:

  •   [type] - 错误类型
    -  [message] - 错误消息
    -  [file] - 发生错误所在的文件
    -  [line] - 发生错误所在的行

3:set_exception_handler()

设置默认的异常处理程序,用在没有用try/catch块来捕获的异常,也就是说不管你抛出的异常有没有人捕获,如果没有人捕获就会进入到该方法中,并且在回调函数调用后异常会中止。

php

版权属于:karp
作品采用:本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
更新于: 2019年02月15日 02:22
5

目录

来自 《PHP异常处理中的黑科技》