[首页]
[文章]
[教程]
首页
Web开发
Windows开发
编程语言
数据库技术
移动平台
系统服务
微信
设计
布布扣
其他
数据分析
首页
>
Web开发
> 详细
php异常处理
时间:
2015-08-05 18:27:45
阅读:
295
评论:
0
收藏:
0
[点我收藏+]
<?php
/*从PHP5开始,php支持异常处理,异常处理是面向对象一个重要特性,php
代码中的异常通过throw抛出,异常抛出之后,后面的代码将不会在执行
异常抛出被用于在遇到位置错误,或者不符合预先设定的条件时,通知客户程序
以便进行其它相关处理,不至于使程序直接报错中断
当代码中使用了try catch的时候,抛出的异常会在catch中捕获,否则会直接中中断*/
/*
1、基本语法
try{
//可能出现错误或异常的代码
//catch表示捕获,Exception是php已定义好的异常类
} catch(Exception $e){
//对异常处理,方法:
//1、自己处理
//2、不处理,将其再次抛出
}*/
/*
2、处理处理程序应当包括:
Try - 使用异常的函数应该位于 "try" 代码块内。如果没有触发异常,则代码将照常继续执行。但是如果异常被触发,会抛出一个异常。
Throw - 这里规定如何触发异常。注意:每一个 "throw" 必须对应至少一个 "catch",当然可以对应多个"catch"
Catch - "catch" 代码块会捕获异常,并创建一个包含异常信息的对象。*/
function checkNum($number){
if($number > 1){
throw new Exception("异常提示-数字必须小于等于1");
}
return true;
}
try{
checkNum(2);
echo ‘如果你能看到这个提示,说明你的数字小于等于1‘;
}catch(Exception $e){
echo ‘捕获异常:‘.$e->getMessage();
}
/*php具有很多异常处理类,其中Exception是所有异常处理的基类
Exception具有几个基本属性与方法,其中包括了:
message异常消息内容
code异常代码
file抛出异常的文件名
line抛出异常在该文件中的行数
其中常用的方法有:
getTrace获取异常追踪的信息
getTraceAsString获取异常追踪信息的字符串
getMessage获取出错信息
如果必要可以通过继承Exception类来建立子定理的异常处理类*/
class MyException extends Exception{
function getInfo(){
return ‘自定义错误信息‘;
}
}
try{
//使用异常的函数应该位于 "try" 代码块内。如果没有触发异常,则代码将照常继续执行。但是如果异常被触发,会抛出一个异常。
throw new MyException(‘error‘);
//这里规定如何触发异常。注意:每一个 "throw" 必须对应至少一个 "catch",当然可以对应多个"catch"
}catch(Exception $e){
//"catch" 代码块会捕获异常,并创建一个包含异常信息的对象
echo $e->getInfo();
echo $e->getMessage();
}
/*
在异常被捕获之后,我们可以通过异常处理对象获取其中的异常信息,前面我们已经了解捕获方式,以及获取基本的错误信息。
在实际应用中,我们通常会获取足够多的异常信息,然后写入到错误日志中。
通过我们需要将报错的文件名、行号、错误信息、异常追踪信息等记录到日志中,以便调试与修复问题。
*/
try{
throw new Exception(‘wrong‘);
}catch(Exception $e){
echo ‘出错啦‘;
$msg = ‘Error:‘.$e->getMessage()."\n";
$msg .= $e->getTraceAsString()."\n";
$msg .= ‘异常所在行:‘.$e->getLine()."\n";
$msg .= ‘异常所在文件:‘.$e->getFile()."\n";
file_put_contents(‘error.log‘,$msg)
}
?>
版权声明:本文为博主原创文章,未经博主允许不得转载。
php异常处理
原文:http://blog.csdn.net/passer_zzy/article/details/47299989
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年09月23日 (328)
2021年09月24日 (313)
2021年09月17日 (191)
2021年09月15日 (369)
2021年09月16日 (411)
2021年09月13日 (439)
2021年09月11日 (398)
2021年09月12日 (393)
2021年09月10日 (160)
2021年09月08日 (222)
最新文章
更多>
2021/09/28 scripts
2022-05-27
vue自定义全局指令v-emoji限制input输入表情和特殊字符
2022-05-27
9.26学习总结
2022-05-27
vim操作
2022-05-27
深入理解计算机基础 第三章
2022-05-27
C++ string 作为形参与引用传递(转)
2022-05-27
python 加解密
2022-05-27
JavaScript-对象数组里根据id获取name,对象可能有children属性
2022-05-27
SQL语句——保持现有内容在后面增加内容
2022-05-27
virsh命令文档
2022-05-27
教程昨日排行
更多>
1.
list.reverse()
2.
Django Admin 管理工具
3.
AppML 案例模型
4.
HTML 标签列表(功能排序)
5.
HTML 颜色名
6.
HTML 语言代码
7.
jQuery 事件
8.
jEasyUI 创建分割按钮
9.
jEasyUI 创建复杂布局
10.
jEasyUI 创建简单窗口
友情链接
汇智网
PHP教程
插件网
关于我们
-
联系我们
-
留言反馈
- 联系我们:wmxa8@hotmail.com
© 2014
bubuko.com
版权所有
打开技术之扣,分享程序人生!