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 相关文章推荐
PHP4 与 MySQL 数据库操作函数详解
Oct 09 PHP
PHP通过正则表达式下载图片到本地的实现代码
Sep 19 PHP
PHP针对JSON操作实例分析
Jan 12 PHP
php动态变量定义及使用
Jun 10 PHP
PHP代码维护,重构变困难的4种原因分析
Jan 25 PHP
php用正则判断是否为数字的方法
Mar 25 PHP
round robin权重轮循算法php实现代码
May 28 PHP
php 5.4 全新的代码复用Trait详解
Jan 05 PHP
浅谈Laravel中的一个后期静态绑定
Aug 11 PHP
PHP 布尔值的自增与自减的实现方法
May 03 PHP
thinkphp5 + ajax 使用formdata提交数据(包括文件上传) 后台返回json完整实例
Mar 02 PHP
PHP时间相关常用函数用法示例
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
亲密接触PHP之PHP语法学习笔记1
2006/12/17 PHP
php正则表达匹配中文问题分析小结
2012/03/25 PHP
PHP字符串的编码问题的详细介绍
2013/04/27 PHP
计算php页面运行时间的函数介绍
2013/07/01 PHP
一个用js实现的页内搜索代码
2007/05/23 Javascript
jquery获取特定name所有选中的checkbox,支持IE9标准模式
2013/03/18 Javascript
javascript使用正则表达式实现去掉空格之后的字符
2015/02/15 Javascript
ES6新特性之模块Module用法详解
2017/04/01 Javascript
php 修改密码实现代码
2017/05/24 Javascript
微信小程序实现发红包功能
2018/07/11 Javascript
10行代码实现微信小程序滑动tab切换
2018/12/28 Javascript
vue 解决form表单提交但不跳转页面的问题
2019/10/30 Javascript
javascript实现弹出层效果
2019/12/10 Javascript
解决vue项目 build之后资源文件找不到的问题
2020/09/12 Javascript
介绍Python中内置的itertools模块
2015/04/29 Python
浅谈django中的认证与登录
2016/10/31 Python
itchat接口使用示例
2017/10/23 Python
python使用json序列化datetime类型实例解析
2018/02/11 Python
Python实用技巧之利用元组代替字典并为元组元素命名
2018/07/11 Python
python判断输入日期为第几天的实例
2018/11/13 Python
flask框架json数据的拿取和返回操作示例
2019/11/28 Python
python无序链表删除重复项的方法
2020/01/17 Python
python实现提取COCO,VOC数据集中特定的类
2020/03/10 Python
实例讲解CSS3中的border-radius属性
2015/08/18 HTML / CSS
CSS3按钮鼠标悬浮实现光圈效果源码
2016/09/11 HTML / CSS
HTML5组件Canvas实现图像灰度化(步骤+实例效果)
2013/04/22 HTML / CSS
欧洲最大的婴幼儿服装及内衣公司:Petit Bateau(小帆船)
2016/08/16 全球购物
Erwin Müller穆勒家居瑞士官网:您整个家庭的邮购公司
2019/12/28 全球购物
什么是反射
2012/03/17 面试题
工作自我评价分享
2013/12/01 职场文书
自荐书模板
2013/12/15 职场文书
企业党员一句话承诺
2014/05/30 职场文书
幼儿园教师培训心得体会
2016/01/21 职场文书
毕业生自我鉴定范文
2019/05/13 职场文书
某某店铺的开业庆典主持词范本
2019/11/25 职场文书
JavaScript声明变量和数据类型的转换
2022/04/12 Javascript