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+oracle 分页类
Oct 09 PHP
简单采集了yahoo的一些数据
Feb 14 PHP
PhpMyAdmin出现export.php Missing parameter: what /export_type错误解决方法
Aug 09 PHP
php中利用str_pad函数生成数字递增形式的产品编号
Sep 30 PHP
PHP页面中文乱码分析
Oct 29 PHP
php判断类是否存在函数class_exists用法分析
Nov 14 PHP
PHP也能干大事之PHP中的编码解码详解
Apr 20 PHP
php利用header函数下载各种文件
Aug 24 PHP
phpStudy配置多站点多域名方法及遇到的403错误解决方法
Oct 19 PHP
Laravel配置全局公共函数的方法步骤
May 09 PHP
PHP PDO和消息队列的个人理解与应用实例分析
Nov 25 PHP
phpQuery采集网页实现代码实例
Apr 02 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语言中使用json的技巧及json的实现代码详解
2015/10/27 PHP
PHP7常量数组用法分析
2016/09/26 PHP
xheditor与validate插件冲突的解决方案
2010/04/15 Javascript
js 图片等比例缩放代码
2010/05/13 Javascript
jQuery之ajax技术的详细介绍
2013/06/19 Javascript
浅析document.createDocumentFragment()与js效率
2013/07/08 Javascript
JavaScript中双叹号(!!)作用示例介绍
2014/04/10 Javascript
jquery中post方法用法实例
2014/10/21 Javascript
纯JS实现本地图片预览的方法
2015/07/31 Javascript
JS实现新浪微博效果带遮罩层的弹出框代码
2015/10/12 Javascript
JavaScript如何实现在文本框(密码框)输入提示语
2015/12/25 Javascript
JS监听微信、支付宝等移动app及浏览器的返回、后退、上一页按钮的事件方法
2016/08/05 Javascript
JavaScript中绑定事件的三种方式及去除绑定
2016/11/05 Javascript
获取jqGrid中选择的行的数据
2016/11/30 Javascript
基于Bootstrap的标签页组件及bootstrap-tab使用说明
2017/07/25 Javascript
前端主流框架vue学习笔记第二篇
2017/07/26 Javascript
微信小程序实现顶部导航特效
2019/01/28 Javascript
基于vue+echarts 数据可视化大屏展示的方法示例
2020/03/09 Javascript
解决vue项目运行npm run serve报错的问题
2020/10/26 Javascript
[02:39]我与DAC之Newbee.Moogy:从论坛到TI
2018/03/26 DOTA
Python模拟自动存取款机的查询、存取款、修改密码等操作
2018/09/02 Python
python对html过滤处理的方法
2018/10/21 Python
深入浅析python3中的unicode和bytes问题
2019/07/03 Python
基于pytorch padding=SAME的解决方式
2020/02/18 Python
Python 如何批量更新已安装的库
2020/05/26 Python
Python实现进度条和时间预估的示例代码
2020/06/02 Python
中专毕业生自荐信
2013/11/16 职场文书
客服主管岗位职责
2013/12/13 职场文书
售后服务承诺书怎么写
2014/05/21 职场文书
学校安全责任书范本
2014/07/23 职场文书
2014财务年终工作总结
2014/12/08 职场文书
财务经理岗位职责
2015/01/31 职场文书
2015年档案室工作总结
2015/05/23 职场文书
八年级物理教学反思
2016/02/19 职场文书
Python数据可视化之基于pyecharts实现的地理图表的绘制
2021/06/10 Python
mysql获取指定时间段中所有日期或月份的语句(不设存储过程,不加表)
2021/06/18 MySQL