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脚本的10个技巧(2)
Oct 09 PHP
PHP新手上路(十一)
Oct 09 PHP
php 8小时时间差的解决方法小结
Dec 22 PHP
PHP 的异常处理、错误的抛出及回调函数等面向对象的错误处理方法
Dec 07 PHP
php中用date函数获取当前时间有误的解决办法
Aug 02 PHP
php计算数组不为空元素个数的方法
Jan 27 PHP
PHP以mysqli方式连接类完整代码实例
Jul 15 PHP
php实现转换html格式为文本格式的方法
May 16 PHP
Smarty模板引擎缓存机制详解
May 23 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
Jun 16 PHP
php中如何执行linux命令详解
Nov 06 PHP
TP3.2框架分页相关实现方法分析
Jun 03 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
jQuery ajax+PHP实现的级联下拉列表框功能示例
2019/02/12 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式二图文详解
2019/04/09 PHP
mouse_on_title.js
2006/08/25 Javascript
jquery ready函数源代码研究
2009/12/06 Javascript
jquery load()在firefox(火狐)下显示不正常的解决方法
2011/04/05 Javascript
jquery调用wcf并展示出数据的方法
2011/07/07 Javascript
Javascript全局变量var与不var的区别深入解析
2013/12/09 Javascript
jQuery Ajax()方法使用指南
2014/11/19 Javascript
cocos2dx骨骼动画Armature源码剖析(一)
2015/09/08 Javascript
基于jquery实现动态竖向柱状条特效
2016/02/12 Javascript
全面解析多种Bootstrap图片轮播效果
2016/05/27 Javascript
D3.js实现雷达图的方法详解
2016/09/22 Javascript
JavaScript实现事件的中断传播和行为阻止方法示例
2017/01/20 Javascript
原生js实现对Ajax的封装(仿jquery)
2017/01/22 Javascript
Vue.js:使用Vue-Router 2实现路由功能介绍
2017/02/22 Javascript
jQuery插件FusionCharts实现的Marimekko图效果示例【附demo源码】
2017/03/24 jQuery
webpack打包后直接访问页面图片路径错误的解决方法
2017/06/17 Javascript
微信小程序 同步请求授权的详解
2017/08/04 Javascript
vue中$refs的用法及作用详解
2018/04/24 Javascript
详解Angular6.0使用路由步骤(共7步)
2018/06/29 Javascript
详解在Node.js中发起HTTP请求的5种方法
2019/01/10 Javascript
使用python来调用CAN通讯的DLL实现方法
2019/07/03 Python
python软件都是免费的吗
2020/06/18 Python
Python Pygame实现俄罗斯方块
2021/02/19 Python
css3动画效果小结(推荐)
2016/07/25 HTML / CSS
size?德国官方网站:英国伦敦的球鞋精品店
2018/03/17 全球购物
千禧酒店及度假村官方网站:Millennium Hotels and Resorts
2019/05/10 全球购物
Java TransactionAPI (JTA) 主要包含几部分
2012/12/07 面试题
小学教师评语大全
2014/04/23 职场文书
白血病募捐倡议书
2014/05/14 职场文书
小学优秀班集体申报材料
2014/05/25 职场文书
劳资员岗位职责
2015/02/13 职场文书
4S店销售内勤岗位职责
2015/04/13 职场文书
个人借条范本
2015/05/25 职场文书
业务员年终工作总结2015
2015/05/28 职场文书
基于flask实现五子棋小游戏
2021/05/25 Python