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实现MVC开发得最简单的方法――模型
Apr 10 PHP
10条PHP编程习惯助你找工作
Sep 29 PHP
简化php模板页面中分页代码的解析
Feb 06 PHP
PHP统计目录下的文件总数及代码行数(去除注释及空行)
Jan 17 PHP
PHP函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
Jul 01 PHP
利用php实现禁用IE和火狐的缓存问题
Dec 03 PHP
php查看网页源代码的方法
Mar 13 PHP
PHP安全上传图片的方法
Mar 21 PHP
Yii2框架数据库简单的增删改查语法小结
Aug 31 PHP
PHP读取并输出XML文件数据的简单实现方法
Dec 22 PHP
PDO::errorCode讲解
Jan 28 PHP
laravel批量生成假数据的方法
Oct 09 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
印尼林东PWN黄金曼特宁咖啡豆:怎么冲世界上最醇厚的咖啡冲煮教程
2021/03/03 冲泡冲煮
Zend Guard一些常见问题解答
2008/09/11 PHP
7个超级实用的PHP代码片段
2011/07/11 PHP
js跨域和ajax 跨域问题的实现思路
2009/09/05 Javascript
js随机生成网页背景颜色的方法
2015/02/26 Javascript
jQuery+ajax实现无刷新级联菜单示例
2015/05/21 Javascript
JQuery实现简单的图片滑动切换特效
2015/11/22 Javascript
JS遍历数组及打印数组实例分析
2016/01/21 Javascript
JS实现动态生成表格并提交表格数据向后端
2020/11/25 Javascript
如何快速上手Vuex
2017/02/14 Javascript
Angular2使用Angular CLI快速搭建工程(一)
2017/05/21 Javascript
JS简单获得节点元素的方法示例
2018/02/10 Javascript
python正则表达式去掉数字中的逗号(python正则匹配逗号)
2013/12/25 Python
python+opencv实现动态物体识别
2018/01/09 Python
python 拼接文件路径的方法
2018/10/23 Python
对Django外键关系的描述
2019/07/26 Python
Python实现二叉搜索树BST的方法示例
2019/07/30 Python
利用python、tensorflow、opencv、pyqt5实现人脸实时签到系统
2019/09/25 Python
Pytorch之Variable的用法
2019/12/31 Python
python isinstance函数用法详解
2020/02/13 Python
python 两个一样的字符串用==结果为false问题的解决
2020/03/12 Python
如何提高python 中for循环的效率
2020/04/15 Python
基于Python模拟浏览器发送http请求
2020/11/06 Python
Python从MySQL数据库中面抽取试题,生成试卷
2021/01/14 Python
Pytorch 图像变换函数集合小结
2021/02/01 Python
python自动化办公操作PPT的实现
2021/02/05 Python
HTML5 canvas实现的静态循环滚动播放弹幕
2021/01/05 HTML / CSS
英国安全产品购物网站:The Safe Shop
2017/03/20 全球购物
倩碧英国官网:Clinique英国
2018/08/10 全球购物
英国著名书店:Foyles
2018/12/01 全球购物
新闻系毕业生推荐信
2013/11/16 职场文书
船舶专业个人求职信范文
2014/01/02 职场文书
简历里的自我评价范文
2014/02/24 职场文书
2014年学校工会工作总结
2014/12/06 职场文书
推广普通话主题班会
2015/08/17 职场文书
创业计划书之家政服务
2019/09/18 职场文书