php异常处理—多个异常
2015-06-02 13:08
746 查看
可以为一段脚本使用多个异常,来检测多种情况。
可以使用多个 if..else 代码块,或一个 switch 代码块,或者嵌套多个异常。这些异常能够使用不同的 exception 类,并返回不同的错误消息:
上面的代码测试了两种条件,如何任何条件不成立,则抛出一个异常:
customException() 类是作为旧的 exception 类的一个扩展来创建的。这样它就继承了旧类的所有属性和方法。
创建 errorMessage() 函数。如果 e-mail 地址不合法,则该函数返回一个错误消息。
执行 "try" 代码块,在第一个条件下,不会抛出异常。
由于 e-mail 含有字符串 "example",第二个条件会触发异常。
"catch" 代码块会捕获异常,并显示恰当的错误消息
如果没有捕获 customException,仅仅捕获了 base exception,则在那里处理异常。
可以使用多个 if..else 代码块,或一个 switch 代码块,或者嵌套多个异常。这些异常能够使用不同的 exception 类,并返回不同的错误消息:
<?php class customException extends Exception { public function errorMessage() { //error message $errorMsg = 'Error on line '.$this->getLine().' in '.$this->getFile() .': <b>'.$this->getMessage().'</b> is not a valid E-Mail address'; return $errorMsg; } } $email = "someone@example.com"; try { //check if if(filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE) { //throw exception if email is not valid throw new customException($email); } //check for "example" in mail address if(strpos($email, "example") !== FALSE) { throw new Exception("$email is an example e-mail"); } } catch (customException $e) { echo $e->errorMessage(); } catch(Exception $e) { echo $e->getMessage(); } ?>
例子解释:
上面的代码测试了两种条件,如何任何条件不成立,则抛出一个异常:customException() 类是作为旧的 exception 类的一个扩展来创建的。这样它就继承了旧类的所有属性和方法。
创建 errorMessage() 函数。如果 e-mail 地址不合法,则该函数返回一个错误消息。
执行 "try" 代码块,在第一个条件下,不会抛出异常。
由于 e-mail 含有字符串 "example",第二个条件会触发异常。
"catch" 代码块会捕获异常,并显示恰当的错误消息
如果没有捕获 customException,仅仅捕获了 base exception,则在那里处理异常。
相关文章推荐
- phpstorm 8 注册码
- php B KB MB TB
- php异常处理—创建自定义的异常处理器
- 配置wamp开发环境
- PHP 中的新语法 new static 是个啥意思?
- php异常处理—异常的基本用法
- PHP的正则表达式手册
- ThinkPHP开发笔记-用户登录注册
- ortp编译测试
- YII excel导入
- TP excel 导入类
- php简单数据缓存类
- php使用ob_flush不能每隔一秒输出原理分析
- php kohana框架 view使用
- Yii中使用PHPExcel导出Excel
- WindowManager 中LayoutParams的各种属性~2
- php获取指定范围内最接近数的方法
- WindowManager 中LayoutParams的各种属性~1
- php 操作数组 (合并,拆分,追加,查找,删除等)
- [php] Thinkphp删除图片和数据库记录