当前位置: 网学 > 编程文档 > PHP > 正文

PHP如何抛出异常处理错误

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/06/21
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 代码块。
设置顶层异常处理器 (Top Level Exception Handler)
set_exception_handler() 函数可设置处理所有未捕获异常的用户定义函数。
复制代码 代码如下:
<?php
function myException($exception){
echo “<b>Exception:</b> ” , $exception->getMessage();
}
set_exception_handler(''myException'');
throw new Exception(''Uncaught Exception occurred'');
?>

以上代码的输出应该类似这样:

Exception: Uncaught Exception occurred
在上面的代码中,不存在 “catch” 代码块,而是触发顶层的异常处理程序。应该使用此函数来捕获所有未被捕获的异常。
异常的规则
需要进行异常处理的代码应该放入 try 代码块内,以便捕获潜在的异常。
每个 try 或 throw 代码块必须至少拥有一个对应的 catch 代码块。
使用多个 catch 代码块可以捕获不同种类的异常。
可以在 try 代码块内的 catch 代码块中再次抛出(re-thrown)异常。
简而言之:如果抛出了异常,就必须捕获它。

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号