当前位置:Gxlcms > PHP教程 > php异常处理技术,顶级异常处理器

php异常处理技术,顶级异常处理器

时间:2021-07-01 10:21:17 帮助过:33人阅读

定义顶级异常处理器用到的函数是
set_exception_handler("My_exception");
这里的My_expection是开发者自定义的异常处理函数,既顶级异常处理器,只有当程序中没有函数来处理异常才有顶级异常处理器来处理异常,如果没有定义顶级异常处理器,则由系统默认的异常处理器来处理异常

举例说明:
代码如下:
  1. <br><meta http-equiv="content-type" content="text/html;charset=utf-8" /><?php <br>set_exception_handler("My_expection"); <br>function My_expection(){ <br>echo "这里是顶级异常处理器"; <br>} <br>try{ <br>nohello("hello"); <br>}catch(Exception $e){ <br>throw $e; <br>} <br>  function nohello($nohello){ <br>   if($nohello == "hello"){ <br>   throw new Exception("不能输入hello"); <br>   }else{ <br>echo "输入成功"; <br>} <br>} <br>?> <br> <br>关于PHP异常处理 的一个问题 <br><span><u></u></span> 代码如下:<pre class="brush:php;toolbar:false layui-box layui-code-view layui-code-notepad"><ol class="layui-code-ol"><li><br><?php <br>try { <br>$a=10/0; <br>}catch (Exception $e){ <br>echo "抛出异常"; <br>} <br>?> <br> <br>以上代码,并不会</li></ol></pre>输出“抛出异常”,而是
输出了错误信息:Warning: Division by zero in......

说明:try块中并没有抛出异常,而是按照系统默认的错误处理机制进行处理

所以能不能捕获到异常,取决于有没有真正的抛出异常

人气教程排行