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 相关文章推荐
PHP控制网页过期时间的代码
Sep 28 PHP
修改PHP的memory_limit限制的方法分享
Feb 21 PHP
php json与xml序列化/反序列化
Oct 28 PHP
ThinkPHP查询中的魔术方法简述
Jun 25 PHP
thinkphp3.2.2前后台公用类架构问题分析
Nov 25 PHP
php 问卷调查结果统计
Oct 08 PHP
Symfony2获取web目录绝对路径、相对路径、网址的方法
Nov 14 PHP
php微信开发之关注事件
Jun 14 PHP
总结PHP代码规范、流程规范、git规范
Jun 18 PHP
PHP7创建COOKIE和销毁COOKIE的实例方法
Feb 03 PHP
PHP中mysqli_get_server_version()的实例用法
Feb 03 PHP
PHP SESSION跨页面传递失败解决方案
Dec 11 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打印输出棋盘的实现方法
2014/12/23 PHP
php中JSON的使用与转换
2015/01/14 PHP
php实现TCP端口检测的方法
2015/04/01 PHP
PHP与服务器文件系统的简单交互
2016/10/21 PHP
JavaScipt基本教程之前言
2008/01/16 Javascript
初学Javascript的一些总结
2008/11/03 Javascript
jquery xMarquee实现文字水平无缝滚动效果
2014/04/29 Javascript
jquery彩色投票进度条简单实例演示
2020/07/23 Javascript
JavaScript简单实现弹出拖拽窗口(二)
2016/06/17 Javascript
简单几步实现返回顶部效果
2016/12/05 Javascript
js实现定时进度条完成后切换图片
2017/01/04 Javascript
element 结合vue 在表单验证时有值却提示错误的解决办法
2018/01/22 Javascript
Vue Router去掉url中默认的锚点#
2018/08/01 Javascript
JavaScript实现的联动菜单特效示例
2019/07/08 Javascript
JS模拟浏览器实现全局搜索功能
2019/09/11 Javascript
Vue中通过vue-router实现命名视图的问题
2020/04/23 Javascript
vue通过过滤器实现数据格式化
2020/07/20 Javascript
Vue Render函数原理及代码实例解析
2020/07/30 Javascript
详解python多线程、锁、event事件机制的简单使用
2018/04/27 Python
pandas pivot_table() 按日期分多列数据的方法
2018/11/16 Python
Python单元测试模块doctest的具体使用
2020/02/10 Python
解决python pandas读取excel中多个不同sheet表格存在的问题
2020/07/14 Python
Web前端绘制0.5像素的几种方法
2017/08/11 HTML / CSS
HTML5本地数据库基础操作详解
2016/04/26 HTML / CSS
小女主人连衣裙:Little Mistress
2017/07/10 全球购物
六五普法规划实施方案
2014/03/21 职场文书
安全口号大全
2014/06/21 职场文书
2014年自愿离婚协议书范本
2014/09/25 职场文书
湖南省召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
2014年招生工作总结
2014/11/26 职场文书
酒店前台接待岗位职责
2015/04/02 职场文书
大国崛起观后感
2015/06/02 职场文书
推荐六本经典文学奖书籍:此生必读
2019/08/22 职场文书
python使用pygame创建精灵Sprite
2021/04/06 Python
以下牛机,你有几个
2022/04/05 无线电
SQL Server数据库的三种创建方法汇总
2023/05/08 MySQL