php错误、异常处理机制(补充)


Posted in PHP onMay 07, 2012

一、错误处理
异常处理: 意外,是在程序运行过程中发生的意料这外的事,使用异常改变脚本正常流程
PHP5中的一个新的重要特性

if(){ 
}else{ 
} 
try { 
}catch(异常对象){ 
}

1. 如果try中代码没有问题,则将try中代码执行完后就到catch后执行
2. 如果try中代码有异常发生,则抛出一个异常对象(使用throw),抛出给了catch中的参数, 则在try中代码就不会再继续执行下去
直接跳转到catch中去执行, catch中执行完成, 再继续向下执行
注意: 提示发生了什么异常,这不是主要我们要做事,需要在catch中解决这个异常, 如果解决不了,则出去给用户
二、自己定义一个异常类
作用:就是写一个或多个方法解决当发生这个异常时的处理方式
1. 自己定义异常类,必须是Exception(内置类)的子类,
2. Exception类中的只有构造方法和toString()可以重写, 其它都final
三、处理多个异常
自己定义功能类时如果在方法中抛出异常
class OpenFileException extends Exception { 
function __construct($message = null, $code = 0){ 
parent::__construct($message, $code); 
echo "wwwwwwwwwwwwwww<br>"; 
} 
function open(){ 
touch("tmp.txt"); 
$file=fopen("tmp.txt", "r"); 
return $file; 
} 
} 
class DemoException extends Exception { 
function pro(){ 
echo "处理demo发生的异常<br>"; 
} 
} 
class TestException extends Exception { 
function pro(){ 
echo "这里处理test发生的异常<br>"; 
} 
} 
class HelloException extends Exception { 
} 
class MyClass { 
function openfile(){ 
$file=@fopen("tmp.txt", "r"); 
if(!$file) 
throw new OpenFileException("文件打开失败"); 
} 
function demo($num=0){ 
if($num==1) 
throw new DemoException("演示出异常"); 
} 
function test($num=0){ 
if($num==1) 
throw new TestException("测试出错"); 
} 
function fun($num=0){ 
if($num==1) 
throw new HelloException("###########"); 
} 
} 
try{ 
echo "11111111111111<br>"; 
$my=new MyClass(); 
$my->openfile(); 
$my->demo(0); 
$my->test(0); 
$my->fun(1); 
echo "22222222222222222<br>"; 
}catch(OpenFileException $e){ //$e =new Exception(); 
echo $e->getMessage()."<br>"; 
$file=$e->open(); 
}catch(DemoException $e){ 
echo $e->getMessage()."<br>"; 
$e->pro(); 
}catch(TestException $e){ 
echo $e->getMessage()."<br>"; 
$e->pro(); 
}catch(Exception $e){ 
echo $e->getMessage()."<br>"; 
} 
var_dump($file); 
echo "444444444444444444444<br>";
PHP 相关文章推荐
基于mysql的论坛(1)
Oct 09 PHP
php 多关键字 高亮显示实现代码
Apr 23 PHP
php共享内存段示例分享
Jan 20 PHP
php中3种方法删除字符串中间的空格
Mar 10 PHP
PHP内置过滤器FILTER使用实例
Jun 25 PHP
实例讲解php数据访问
May 09 PHP
php+MySql实现登录系统与输出浏览者信息功能
Jul 01 PHP
Thinkphp通过一个入口文件如何区分移动端和PC端
Apr 18 PHP
利用PHP判断是否是连乘数字串的方法示例
Jul 03 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
Aug 31 PHP
PHP常见的几种攻击方式实例小结
Apr 29 PHP
PHP常用函数之根据生日计算年龄功能示例
Oct 21 PHP
PHP中的错误处理、异常处理机制分析
May 07 #PHP
PHP面向对象的进阶学习(抽像类、接口、final、类常量)
May 07 #PHP
PHP file_exists问题杂谈
May 07 #PHP
php提示Call-time pass-by-reference has been deprecated in的解决方法[已测]
May 06 #PHP
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装(win+linux)
May 05 #PHP
php截取后台登陆密码的代码
May 05 #PHP
php在线代理转向代码
May 05 #PHP
You might like
关于PHP内存溢出问题的解决方法
2013/06/25 PHP
php初始化对象和析构函数的简单实例
2014/03/11 PHP
php生成txt文件实例代码介绍
2016/04/28 PHP
PHP多进程简单实例小结
2019/11/09 PHP
两个SUBMIT按钮,如何区分处理
2006/08/22 Javascript
写了一个layout,拖动条连贯,内容区可为iframe
2007/08/19 Javascript
科讯商业版中用到的ajax空间与分页函数
2007/09/02 Javascript
JS注释所产生的bug 即使注释也会执行
2013/11/19 Javascript
javascript:FF/Chrome与IE动态加载元素的区别说明
2014/01/26 Javascript
动态加载iframe时get请求传递中文参数乱码解决方法
2014/05/07 Javascript
javascript中的return和闭包函数浅析
2014/06/06 Javascript
jquery获取radio值实例
2014/10/16 Javascript
javascript中Array数组的迭代方法实例分析
2015/02/04 Javascript
JavaScript控制图片加载完成后调用回调函数的方法
2015/03/20 Javascript
10条建议帮助你创建更好的jQuery插件
2015/05/18 Javascript
js实现用户离开页面前提示是否离开此页面的方法(包括浏览器按钮事件)
2015/07/18 Javascript
微信小程序 swiper组件轮播图详解及实例
2016/11/16 Javascript
AngularJS中run方法的巧妙运用
2017/01/04 Javascript
javascript实现下雨效果
2017/03/27 Javascript
微信小程序 自动登陆PHP源码实例(源码下载)
2017/05/08 Javascript
详解基于Vue+Koa的pm2配置
2017/10/24 Javascript
JS监听组合按键思路及实现过程
2020/04/17 Javascript
vue中template的三种写法示例
2020/10/21 Javascript
python遍历目录的方法小结
2016/04/28 Python
python3实现字符串操作的实例代码
2019/04/16 Python
pycharm不能运行.py文件的解决方法
2020/02/12 Python
详解用Python调用百度地图正/逆地理编码API
2020/07/02 Python
幼教简历自我评价
2014/01/28 职场文书
党员自我批评与反省材料
2014/02/10 职场文书
拉拉队口号
2014/06/16 职场文书
2014年大学班级工作总结
2014/11/14 职场文书
不尊敬老师检讨书范文
2014/11/19 职场文书
销售区域经理岗位职责
2015/04/10 职场文书
教师培训学习心得体会
2016/01/21 职场文书
初三语文教学反思
2016/03/03 职场文书
python将图片转为矢量图的方法步骤
2021/03/30 Python