PHP异常处理以及自定义顶级异常处理器
发布时间:2022-09-12 17:03:33 所属栏目:PHP教程 来源:
导读: 自定义两个方法,添加用户addUser()和修改用户updateUser(),给一个用户名的参数;
通常的做法:
function A(){
$res1=addUser('yonghu');
$res2=updateUser('小
通常的做法:
function A(){
$res1=addUser('yonghu');
$res2=updateUser('小
|
自定义两个方法,添加用户addUser()和修改用户updateUser(),给一个用户名的参数; 通常的做法: function A(){ $res1=addUser('yonghu'); $res2=updateUser('小米'); if ($res1 && $res2) { echo "成功"; }else{ echo "失败"; } } A(); function addUser($username){ if ($username=='yonghu') { return true; }else{ return false; } } function updateUser($username){ if($username=='小米'){ return true; }else{ return false; } } 这样的弊端就是代码冗余,如果再添加一个方法,也需要同样的验证,则需要修改function A()的判断条件 PHP 5 提供了一种新的面向对象的错误处理方法。 案例如下 try{ addUser("小明"); updateUser("小米"); } //catch 捕获Exception 是异常类 是php定义好的一个类 catch (Exception $e){ echo "失败信息=".$e->getMessage(); } function addUser($username){ if ($username=="小米") { }else{ throw new Exception("添加失败"); } } function updateUser($username){ if ($username=="小米") { }else{ throw new Exception("修改失败"); } } 当addUser()抛出一个异常,则catch就会去捕获这个异常。 PHP还提供了一个顶级异常处理器处理的方法 案例如下: class My_Exception1 extends Exception{ } class My_Exception2 extends Exception{ } function A($a){ if($a>20){ throw new My_Exception1("a"); } } function B($b){ if ($b<15) { throw new My_Exception2("b"); } } function C(){ try{ A(10); B(10); }catch(My_Exception1 $e1){ echo "错误信息:".$e1->getMessage(); }catch(My_Exception2 $e2){ echo "错误信息:".$e2->getMessage(); } } C(); 运行结果: 错误信息:b 这里的 My_expection1 和 My_expection2 是开发者自定义的异常处理函数,既顶级异常处理器,只有当程序中没有函数来处理异常才有顶级异常处理器来处理异常,如果没有定义顶级异常处理器PHP异常处理,则由系统默认的异常处理器来处理异常。 (编辑:云计算网_韶关站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


浙公网安备 33038102330456号