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 相关文章推荐
基于mysql的bbs设计(四)
Oct 09 PHP
PHP操作文件方法问答
Mar 16 PHP
PHP生成带有雪花背景的验证码
Sep 28 PHP
php 论坛采集程序 模拟登陆,抓取页面 实现代码
Jul 09 PHP
php max_execution_time执行时间问题
Jul 17 PHP
PHP中通过HTTP_USER_AGENT判断是否为手机移动终端的函数代码
Feb 14 PHP
解析PHP中的正则表达式以及模式匹配
Jun 19 PHP
php单一接口的实现方法
Jun 20 PHP
总结PHP中数值计算的注意事项
Aug 14 PHP
PHP弱类型的安全问题详细总结
Sep 25 PHP
PHP5.6新增加的可变函数参数用法分析
Aug 25 PHP
tp框架(thinkPHP)实现三次登陆密码错误之后锁定账号功能示例
May 24 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
关于文本留言本的分页代码
2006/10/09 PHP
thinkPHP3.2.2框架行为扩展及demo示例
2018/06/19 PHP
Gambit vs ForZe BO3 第三场 2.13
2021/03/10 DOTA
js/jquery获取浏览器窗口可视区域高度和宽度以及滚动条高度实现代码
2012/12/17 Javascript
Three.js源码阅读笔记(基础的核心Core对象)
2012/12/27 Javascript
NodeJS学习笔记之FS文件模块
2015/01/13 NodeJs
基于javascript编写简单日历
2016/05/02 Javascript
手机浏览器 后退按钮强制刷新页面方法总结
2016/10/09 Javascript
原生js实现节日时间倒计时功能
2017/01/18 Javascript
详解Nodejs之静态资源处理
2017/06/05 NodeJs
详解webpack编译多页面vue项目的配置问题
2017/12/11 Javascript
关于Vue单页面骨架屏实践记录
2017/12/13 Javascript
详解vue-cli之webpack3构建全面提速优化
2017/12/25 Javascript
详解angular路由高亮之RouterLinkActive
2018/04/28 Javascript
Bootstrap模态对话框中显示动态内容的方法
2018/08/10 Javascript
vue使用recorder.js实现录音功能
2019/11/22 Javascript
JavaScript实现拖拽盒子效果
2020/02/06 Javascript
vue图片裁剪插件vue-cropper使用方法详解
2020/12/16 Vue.js
[01:00:06]加油DOTA_EP01_网络版
2014/08/09 DOTA
用python 制作图片转pdf工具
2015/01/30 Python
Python字符串逐字符或逐词反转方法
2015/05/21 Python
python抽象基类用法实例分析
2015/06/04 Python
Python使用django框架实现多人在线匿名聊天的小程序
2017/11/29 Python
基于Python中求和函数sum的用法详解
2018/06/28 Python
Python基于scipy实现信号滤波功能
2019/05/08 Python
通过PYTHON来实现图像分割详解
2019/06/26 Python
班主任寄语大全
2014/04/04 职场文书
《地震中的父与子》教学反思
2014/04/10 职场文书
住房租房协议书
2014/08/20 职场文书
市场营销计划书
2015/01/17 职场文书
北京英文导游词
2015/02/12 职场文书
php字符串倒叙
2021/04/01 PHP
PHP实现创建以太坊钱包转账等功能
2021/04/21 PHP
Tensorflow与RNN、双向LSTM等的踩坑记录及解决
2021/05/31 Python
详解Python常用的魔法方法
2021/06/03 Python
Spring Data JPA框架的核心概念和Repository接口
2022/04/28 Java/Android