当前位置:  首页>> 技术小册>> PHP8入门与项目实战(5)

所有未捕获的异常都可以通过顶层异常处理器来处理。顶层异常处理器使用setexception handler()函数来实现。

set_exception_handler()函数设置用户自定义的异常处理函数。该函数用于创建运行期间用户自己的异常处理方法。该函数会返回旧的异常处理程序,若失败,则返回null。具体的语法格式如下:

  1. set_exception_handler(exception_function)

其中exception_function参数为必需参数,规定未捕获的异常发生时调用的函数,该函数必须在调用set_exception_handler()函数之前定义。这个异常处理函数需要一个参数,即抛出的exception对象。

【例9.10】

  1. <?php
  2. function myException($exception){ //定义顶层的异常处理程序
  3. echo "<b>异常是:</b> " , $exception->getMessage();
  4. }
  5. set_exception_handler('myException');
  6. throw new Exception('正在处理未被捕获的异常'); //抛出异常信息
  7. ?>

运行后结果如图9-13所示。上面的代码不存在catch代码块,而是触发顶层的异常处理程序。用户应该使用此函数来捕获所有未被捕获的异常。