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的同学录程序(4)
Oct 09 PHP
isset和empty的区别
Jan 15 PHP
基于session_unset与session_destroy的区别详解
Jun 03 PHP
利用PHP+JS实现搜索自动提示(实例)
Jun 09 PHP
easyui的tabs update正确用法分享
Mar 21 PHP
使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)
May 05 PHP
PHP实现自动识别Restful API的返回内容类型
Feb 07 PHP
php实现httpRequest的方法
Mar 13 PHP
php通过淘宝API查询IP地址归属等信息
Dec 25 PHP
PHP实现获取第一个中文首字母并进行排序的方法
May 09 PHP
CI框架(CodeIgniter)实现的导入、导出数据操作示例
May 24 PHP
PHP安装memcache扩展的步骤讲解
Feb 14 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文件缓存类汇总
2014/11/21 PHP
详解php魔术方法(Magic methods)的使用方法
2016/02/14 PHP
use jscript with List Proxy Server Information
2007/06/11 Javascript
javascript 有趣而诡异的数组
2009/04/06 Javascript
Jquery 基础学习笔记之文档处理
2009/05/29 Javascript
js模拟类继承小例子
2010/07/17 Javascript
javascript 学习笔记(onchange等)
2010/11/14 Javascript
js判断FCKeditor内容是否为空的两种形式
2013/05/14 Javascript
IE下JS读取xml文件示例代码
2013/08/05 Javascript
javascript:void(0)的作用示例介绍
2013/10/28 Javascript
Javascript 按位取反运算符 (~)
2014/02/04 Javascript
JavaScript获取Url里的参数
2014/12/18 Javascript
javascript实现日期时间动态显示示例代码
2015/09/08 Javascript
jquery插件之文字间歇自动向上滚动效果代码
2016/02/25 Javascript
BootStrap组件之进度条的基本用法
2017/01/19 Javascript
详解Node.js项目APM监控之New Relic
2017/05/12 Javascript
Iphone手机、安卓手机浏览器控制默认缩放大小的方法总结(附代码)
2017/08/18 Javascript
Angular 4根据组件名称动态创建出组件的方法教程
2017/11/01 Javascript
利用百度地图API获取当前位置信息的实例
2017/11/06 Javascript
详解用Node.js写一个简单的命令行工具
2018/03/01 Javascript
js判断输入框不能为空格或null值的实现方法
2018/03/02 Javascript
详解mpvue scroll-view自动回弹bug解决方案
2018/10/01 Javascript
Vue+Element实现表格编辑、删除、以及新增行的最优方法
2019/05/28 Javascript
python线程池(threadpool)模块使用笔记详解
2017/11/17 Python
分析Python读取文件时的路径问题
2018/02/11 Python
django日志默认打印request请求信息的方法示例
2020/05/17 Python
python中通过pip安装库文件时出现“EnvironmentError: [WinError 5] 拒绝访问”的问题及解决方案
2020/08/11 Python
video结合canvas实现视频在线截图功能
2018/06/25 HTML / CSS
iframe跨域的几种常用方法
2019/11/11 HTML / CSS
PyQt QMainWindow的使用示例
2021/03/24 Python
美术国培研修感言
2014/02/12 职场文书
私人会所最新创业计划书范文
2014/03/24 职场文书
开工典礼策划方案
2014/05/23 职场文书
教育实践活动对照检查材料
2014/09/23 职场文书
《法国号》教学反思
2016/02/22 职场文书
2016年清明节期间群众祭祀活动工作总结
2016/04/01 职场文书