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+DBM的同学录程序(2)
Oct 09 PHP
PHP与MySQL开发中页面出现乱码的一种解决方法
Jul 29 PHP
php缓存技术详细总结
Aug 07 PHP
在win7中搭建Linux+PHP 开发环境
Oct 08 PHP
PHP网站开发中常用的8个小技巧
Feb 13 PHP
PHP查找与搜索数组元素方法总结
Jun 12 PHP
yii实现使用CUploadedFile上传文件的方法
Dec 28 PHP
Symfony2中被遗弃的getRequest()方法分析
Mar 17 PHP
PHP实现的多文件上传类及用法示例
May 06 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
Sep 17 PHP
PHP中的浅复制与深复制的实例详解
Oct 26 PHP
php curl获取到json对象并转成数组array的方法
May 31 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 上一篇,下一篇文章实现代码与原理说明
2010/05/09 PHP
joomla内置的表单验证功能使用方法
2010/06/11 PHP
ThinkPHP3.0略缩图不能保存到子目录的解决方法
2012/09/30 PHP
浅析php学习的路线图
2013/07/10 PHP
PHP多进程之pcntl_fork的实例详解
2017/10/15 PHP
学习thinkphp5.0验证类使用方法
2017/11/16 PHP
YII2框架中actions的作用与使用方法示例
2020/03/13 PHP
javascript 事件处理程序介绍
2012/06/27 Javascript
jQuery写的日历(包括日历的样式及功能)
2013/04/23 Javascript
js/html光标定位的实现代码
2013/09/23 Javascript
微信支付如何实现内置浏览器的H5页面支付
2015/09/25 Javascript
JS+JSP通过img标签调用实现静态页面访问次数统计的方法
2015/12/14 Javascript
完美解决JS文件页面加载时的阻塞问题
2016/12/18 Javascript
JavaScript实现星级评分
2017/01/12 Javascript
vue 2.x 中axios 封装的get 和post方法
2018/02/28 Javascript
Vue下滚动到页面底部无限加载数据的示例代码
2018/04/22 Javascript
使用js实现一个简单的滚动条过程解析
2019/09/10 Javascript
vue 接口请求地址前缀本地开发和线上开发设置方式
2020/08/13 Javascript
Python判断文件和字符串编码类型的实例
2017/12/21 Python
Python入门之后再看点什么好?
2018/03/05 Python
python使用socket创建tcp服务器和客户端
2018/04/12 Python
python使用tornado实现登录和登出
2018/07/28 Python
pyqt5 comboBox获得下标、文本和事件选中函数的方法
2019/06/14 Python
python requests模拟登陆github的实现方法
2019/12/26 Python
Python操作Excel工作簿的示例代码(\*.xlsx)
2020/03/23 Python
python框架flask入门之环境搭建及开启调试
2020/06/07 Python
python 实现批量图片识别并翻译
2020/11/02 Python
纽约香氛品牌:NEST Fragrance
2018/10/15 全球购物
澳大利亚买卖正宗二手奢侈品交易平台:Luxe.It.Fwd
2019/10/16 全球购物
有影响力的人、名人和艺术家的官方商品:Represent
2019/11/26 全球购物
职业生涯规划书范文
2014/03/10 职场文书
大一学生个人总结
2015/02/15 职场文书
小学生心理健康活动总结
2015/05/08 职场文书
走进科学观后感
2015/06/18 职场文书
幼儿园大班教师随笔
2015/08/14 职场文书
小学学习委员竞选稿
2015/11/20 职场文书