发生错误后会终止程序执行吗?
不会,也就是说,上面的 end 仍然会执行。
显示错误
当 PHP 程序发生错误时,如果错误没有显示出来,可能是禁用了错误显示。解决方法是:PHP 目录下 php.ini,display_errors = Off 改为 display_errors = On,重启 Apache。
die()、exit()
这两个函数是一个意思,他们的作用就是抛出一个错误,然后终止程序的执行,它们可以跟一个参数用来输出到客户端以说明发生了什么错误。
除了发生重大的错误,这两个函数意义不大,因为它只是简单地抛出错误,然后野蛮地终止后面程序的执行。
自定义错误处理程序
上述代码中,当错误发生时,不论 display_errors 是 On 还是 Off,都不会将错误输出到客户端,而是由自定义错误处理程序 processError 来执行,当然错误处理程序和注册错误处理程序的代码应该在最前面。错误处理程序的参数个数可以是 0 - 5 个。
如果错误处理程序中又出错了,会不会造成死循环呢?不会,因为,错误处理程序中的错误还是由系统来处理。
异常处理
在 PHP 中用抛出异常用:
捕获异常有两种方法:
Exception 对象除了 getMessage() 方法,还有其他一些方法 getCode()、getFile()、getLine() 等。
另外一种捕获异常的方法是使用 set_exception_handler 方法,用法同 set_error_handler,只是异常处理程序只有一个 Exception 类型的参数。