PHP异常处理以及自定义顶级异常处理器
来源:互联网 发布:外贸采购软件 编辑:程序博客网 时间:2024/05/14 04:48
自定义两个方法,添加用户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 是开发者自定义的异常处理函数,既顶级异常处理器,只有当程序中没有函数来处理异常才有顶级异常处理器来处理异常,如果没有定义顶级异常处理器,则由系统默认的异常处理器来处理异常。
0 0
- PHP异常处理以及自定义顶级异常处理器
- php异常处理—创建自定义的异常处理器
- PHP自定义异常处理
- php 自定义错误处理器 与 自定义异常处理器
- php异常处理—设置顶层异常处理器
- springmvc自定义异常处理器
- ARM处理器异常处理
- ARM处理器异常处理
- ARM处理器异常处理
- ARM处理器异常处理
- ARM处理器异常处理
- arm 处理器-异常处理
- ARM处理器异常处理
- PHP顶层异常处理器
- springMvc 自定义注解以及自定义异常处理
- 异常处理+异常+处理异常+自定义异常
- 自定义异常处理器Thread.UncaughtExceptionHandler
- Spring自定义全局异常处理器
- 地图
- js导出txt
- 稠化报表然后行转列
- 最后一个单词的长度
- 《JavaScript学习笔记》:DOM基础
- PHP异常处理以及自定义顶级异常处理器
- sqlite删除与当前时间差值在10秒以上的记录
- css 框模型
- 常用的排序算法和时间复杂度
- UML思维导图
- listview 高度自适应(根据listview的条数 确定高度 )
- Android_BroadcastReceiver(三)
- MFC制作的文件打包工具
- 海思媒体处理平台架构