定义顶级异常处理器用到的函数是 set_exception_handler("My_exception"); 这里的My_expection是开发者自定义的异常处理函数,既顶级异常处理器,只有当程序中没有函数来处理异常才有顶级异常处理器来处理异常,如果没有定义顶级异常处理器,则由系统默认的异常处理器来处理异常 举例说明: <div class="codetitle"><a style="CURSOR: pointer" data="18482" class="copybut" id="copybut18482" onclick="doCopy('code18482')"> 代码如下:<div class="codebody" id="code18482"> <?php set_exception_handler("My_expection"); function My_expection(){ echo "这里是顶级异常处理器"; } try{ nohello("hello"); }catch(Exception $e){ throw $e; } function nohello($nohello){ if($nohello == "hello"){ throw new Exception("不能输入hello"); }else{ echo "输入成功"; } } ?> 关于PHP异常处理 的一个问题 <div class="codetitle"><a style="CURSOR: pointer" data="10196" class="copybut" id="copybut10196" onclick="doCopy('code10196')"> 代码如下:<div class="codebody" id="code10196"> <?php try { $a=10/0; }catch (Exception $e){ echo "抛出异常"; } ?> 以上代码,并不会输出“抛出异常”,而是输出了错误信息:Warning: Division by zero in...... 说明:try块中并没有抛出异常,而是按照系统默认的错误处理机制进行处理 所以能不能捕获到异常,取决于有没有真正的抛出异常 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|