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 和 MySQL 开发的 8 个技巧
Oct 09 PHP
一个简单的php加密解密函数(动态加密)
Jun 19 PHP
ThinkPHP自动转义存储富文本编辑器内容导致读取出错的解决方法
Aug 08 PHP
PHP中比较时间大小实例
Aug 21 PHP
php递归创建目录的方法
Feb 02 PHP
PHP正则表达式入门教程(推荐)
May 18 PHP
laravel自定义分页效果
Jul 23 PHP
PHP异常处理定义与使用方法分析
Jul 25 PHP
PHP实现的回溯算法示例
Aug 15 PHP
thinkPHP5框架auth权限控制类与用法示例
Jun 12 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
Feb 27 PHP
浅谈PHP之ThinkPHP框架使用详解
Jul 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+JS实现大规模数据提交的方法
2015/07/02 PHP
php的debug相关函数用法示例
2016/07/11 PHP
PHP常用函数之base64图片上传功能详解
2019/10/21 PHP
类似CSDN图片切换效果脚本
2009/09/17 Javascript
JavaScript 设计模式之组合模式解析
2010/04/09 Javascript
详解强大的jQuery选择器之基本选择器、层次选择器
2012/02/07 Javascript
jQuery中json对象的复制方式介绍(数组及对象)
2013/06/08 Javascript
JS简单实现元素复制示例附图
2013/11/19 Javascript
仿百度联盟对联广告实现代码
2014/08/30 Javascript
jquery引用方法时传递参数原理分析
2014/10/13 Javascript
解决ueditor jquery javascript 取值问题
2014/12/30 Javascript
jQuery中filter()方法用法实例
2015/01/06 Javascript
JavaScript中用sort()方法对数组元素进行排序的操作
2015/06/09 Javascript
基于javascript实现tab选项卡切换特效调试笔记
2016/03/30 Javascript
jQuery基于$.ajax设置移动端click超时处理方法
2016/05/14 Javascript
基于vue.js快速搭建图书管理平台
2017/10/29 Javascript
Nodejs连接mysql并实现增、删、改、查操作的方法详解
2018/01/04 NodeJs
vue axios 给生产环境和发布环境配置不同的接口地址(推荐)
2018/05/08 Javascript
详解Vue-axios 设置请求头问题
2018/12/06 Javascript
express + jwt + postMan验证实现持久化登录
2019/06/05 Javascript
vue项目中常见问题及解决方案(推荐)
2019/10/21 Javascript
python中reload(module)的用法示例详解
2017/09/15 Python
Python设计模式之桥接模式原理与用法实例分析
2019/01/10 Python
Pycharm 使用 Pipenv 新建的虚拟环境(图文详解)
2020/04/16 Python
Europcar美国/加拿大:预订汽车或卡车租赁服务
2018/11/13 全球购物
澳大利亚人信任的清洁平台,您的私人管家:Jarvis
2020/12/25 全球购物
软件测试有哪些?什么是配置项?
2012/02/12 面试题
医药代表个人的求职信分享
2013/12/08 职场文书
学习优秀共产党员先进事迹思想报告
2014/09/17 职场文书
县政协领导班子群众路线教育实践活动四风问题整改方案
2014/10/26 职场文书
2014年财政所工作总结
2014/11/22 职场文书
向女朋友道歉的话
2015/01/20 职场文书
5.12护士节活动总结
2015/02/10 职场文书
神龙架导游词
2015/02/11 职场文书
蓝天保卫战收官在即 :15行业将开展环保分级评价
2019/07/19 职场文书
使用canvas实现雪花飘动效果的示例代码
2021/03/30 HTML / CSS