php异常处理—重新抛出异常
来源:互联网 发布:为知笔记登录 编辑:程序博客网 时间:2024/05/16 19:35
有时,当异常被抛出时,您也许希望以不同于标准的方式对它进行处理。可以在一个 "catch" 代码块中再次抛出异常。
脚本应该对用户隐藏系统错误。对程序员来说,系统错误也许很重要,但是用户对它们并不感兴趣。为了让用户更容易使用,您可以再次抛出带有对用户比较友好的消息的异常:
<?phpclass customException extends Exception { public function errorMessage() { //error message $errorMsg = $this->getMessage().' is not a valid E-Mail address.'; return $errorMsg; } }$email = "someone@example.com";try { try { //check for "example" in mail address if(strpos($email, "example") !== FALSE) { //throw exception if email is not valid throw new Exception($email); } } catch(Exception $e) { //re-throw exception throw new customException($email); } }catch (customException $e) { //display custom message echo $e->errorMessage(); }?>
例子解释:
上面的代码检测在邮件地址中是否含有字符串 "example"。如果有,则再次抛出异常:
- customException() 类是作为旧的 exception 类的一个扩展来创建的。这样它就继承了旧类的所有属性和方法。
- 创建 errorMessage() 函数。如果 e-mail 地址不合法,则该函数返回一个错误消息。
- 把 $email 变量设置为一个有效的邮件地址,但含有字符串 "example"。
- "try" 代码块包含另一个 "try" 代码块,这样就可以再次抛出异常。
- 由于 e-mail 包含字符串 "example",因此触发异常。
- "catch" 捕获到该异常,并重新抛出 "customException"。
- 捕获到 "customException",并显示一条错误消息。
如果在其目前的 "try" 代码块中异常没有被捕获,则它将在更高层级上查找 catch 代码块。
0 0
- php异常处理—重新抛出异常
- 重新抛出异常
- c++ 重新抛出异常
- java重新抛出异常
- 重新抛出异常——fillInStackTrace()
- java 重新抛出异常 相关处理结果示例代码
- 12.6.2 重新抛出异常
- 10.7抛出异常处理
- 抛出处理异常
- PHP抛出异常
- 异常 -- 捕获处理 &抛出处理
- Java异常处理-----抛出处理
- Java异常处理-----抛出处理
- C++中异常处理中的异常重新抛出的一种用法
- 异常处理----声明抛出异常-人工抛出异常
- 异常处理----声明抛出异常/人工抛出异常
- C++中的异常处理(二)——抛出异常
- 重新抛出异常与 public Throwable fillInStackTrace()
- LeetCode——Two Sum
- Android源码下载及开发环境的搭建
- shell脚本删除N天前的文件夹-----附linux和mac上date命令的不同
- 立体类族共有的抽象类
- 123123
- php异常处理—重新抛出异常
- 线段树区间更新,区间统计+离散化 POJ 2528 Mayor's posters
- 百度APIStore
- 设计模式 装饰者模式 带你重回传奇世界
- 掌阅标签功能能否自定义名字?
- Hibernate HelloWorld-08 一对一的映射
- arduino lcd教程3:控制屏幕上的小人
- 一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10
- ACdream dfs 专题