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 导出数据到淘宝助手CSV的方法分享
Feb 27 PHP
php中常用的预定义变量小结
May 09 PHP
PHP中数字检测is_numeric与ctype_digit的区别介绍
Oct 04 PHP
php缩放图片(根据宽高的等比例缩放)实例介绍
Jun 09 PHP
php魔术函数__call()用法实例分析
Feb 13 PHP
php实现的一个简单json rpc框架实例
Mar 30 PHP
PHP数学运算与数据处理实例分析
Apr 01 PHP
CI框架常用经典操作类总结(路由,伪静态,分页,session,验证码等)
Nov 21 PHP
PHP面向对象程序设计组合模式与装饰模式详解
Dec 02 PHP
浅谈PHP的exec()函数无返回值排查方法(必看)
Mar 31 PHP
PHP实现数组根据某个字段进行水平合并,横向合并案例分析
Oct 08 PHP
解决laravel id非自增 模型取回为0 的问题
Oct 11 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
destoon出现验证码不显示时的紧急处理方法
2014/08/22 PHP
php之curl设置超时实例
2014/11/03 PHP
php简单socket服务器客户端代码实例
2015/05/18 PHP
WordPress中用于检索模版的相关PHP函数使用解析
2015/12/15 PHP
PHP中如何判断exec函数执行成功?
2016/08/04 PHP
基于Web标准的UI组件 — 树状菜单(2)
2006/09/18 Javascript
jquery.simple.tree插件 更简单,兼容性更好的无限树插件
2010/09/03 Javascript
js实现的标题栏新消息闪烁提示效果
2014/06/06 Javascript
JavaScript实现标题栏文字轮播效果代码
2015/10/24 Javascript
jQuery UI库中dialog对话框功能使用全解析
2016/04/23 Javascript
node.js入门学习之url模块
2017/02/25 Javascript
Vue学习笔记进阶篇之vue-router安装及使用方法
2017/07/19 Javascript
Vue中的无限加载vue-infinite-loading的方法
2018/04/08 Javascript
微信小程序6位或多位验证码密码输入框功能的实现代码
2018/05/29 Javascript
命令行批量截图Node脚本示例代码
2019/01/25 Javascript
createObjectURL方法实现本地图片预览
2019/09/30 Javascript
vue组件 keep-alive 和 transition 使用详解
2019/10/11 Javascript
[02:23]DOTA2英雄基础教程 幻影长矛手
2013/12/09 DOTA
[42:36]DOTA2上海特级锦标赛B组败者赛 VG VS Spirit第二局
2016/02/26 DOTA
Python的Django框架中使用SQLAlchemy操作数据库的教程
2016/06/02 Python
Python创建二维数组实例(关于list的一个小坑)
2017/11/07 Python
python 对txt中每行内容进行批量替换的方法
2018/07/11 Python
Python 3.8正式发布重要新功能一览
2019/10/17 Python
pandas和spark dataframe互相转换实例详解
2020/02/18 Python
python matplotlib imshow热图坐标替换/映射实例
2020/03/14 Python
Python接口开发实现步骤详解
2020/04/26 Python
css3加js做一个简单的3D行星运转效果实例代码
2017/01/18 HTML / CSS
英国最大的LED专业零售商:Led Hut
2018/03/16 全球购物
用JAVA SOCKET编程,读服务器几个字符,再写入本地显示
2012/11/25 面试题
Java的类可以定义为Protected或者Private得吗
2015/09/25 面试题
应聘医学检验人员自荐信
2013/09/27 职场文书
实习鉴定评语
2014/01/19 职场文书
开业典礼主持词
2014/03/21 职场文书
领导干部贪图享乐整改措施
2014/09/21 职场文书
2014年保育员个人工作总结
2014/12/02 职场文书
python缺失值的解决方法总结
2021/06/09 Python