- 浏览: 3320034 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (567)
- Web前端-html/表单 (19)
- Web前端-CSS (24)
- Web前端-CSS框架 (4)
- Web前端-JS语言核心 (50)
- Web前端-JS客户端 (26)
- nodejs生态+grunt (10)
- seajs和requirejs (9)
- backbone等框架 (7)
- 模板基础 (7)
- Web前端-deps(不改动) (6)
- Web前端-component (10)
- Web前端-jquery-plugin (13)
- 浏览器兼容性 (6)
- Web前端-使用jQuery (25)
- Web前端-使用jqueryui (6)
- Web前端-性能优化 (3)
- Web协议-HTTP (6)
- ExtJS (13)
- PHP (22)
- PHP面向对象 (4)
- PHP扩展-SOAP (6)
- PHP扩展-curl (4)
- PHP与HTML(导出) (5)
- PHP扩展-综合 (7)
- mysql基础应用 (18)
- 技术心情 (18)
- 算法和面试题 (17)
- 工具(开发)使用 (36)
- memcached原理 (2)
- session和cookie (4)
- UML (2)
- Web前端_FusionCharts (5)
- Web前端_Flex (4)
- Web前端_JSP (3)
- JavaSE (10)
- JavaEE (4)
- tomcat (2)
- Servlet开发 (3)
- Spring开发 (1)
- REST相关 (2)
- 大访问量、高并发 (2)
- 网络编程 (1)
- YII (21)
- linux命令和内核 (12)
- yii与数据库 (10)
- yii与表单 (12)
- yii view层 (1)
- perl (7)
- yii扩展 (7)
- shell (4)
- photoshop (7)
- 视觉设计 (2)
- 我关注的名人在路上 (4)
- 1-自学能力 (1)
- 2-人际沟通能力 (3)
- 3-职业规划能力 (7)
- 4-项目管理能力 (2)
- python (3)
- django (4)
- Mysql高级应用 (6)
- prototype.js (4)
- Web系统安全 (1)
- Web前端-mobile (2)
- egret (6)
- jQuery源码分析 (5)
- fis (4)
最新评论
-
yzq21056563:
感谢作者分享~请教下,http://www.lisa33xia ...
CSS基础:text-overflow:ellipsis溢出文本 -
u012206458:
$.ajax的error,complete,success方法 -
DEMONU:
谢谢,虽然不能给你赞助,但是要给你顶
mysql中key 、primary key 、unique key 与index区别 -
njupt_tolmes:
阿凡达阿凡达阿凡达阿凡达阿凡达阿凡达阿凡达阿凡达阿凡达阿滕庆亚 ...
CSS基础:text-overflow:ellipsis溢出文本 -
zenmshuo:
用过SpreadJS,也包含数据可视化的图表
推荐几个web中常用js图表插件
作者:zccst
一、基本用法
Exception()方法是抛出异常的基类。
在逻辑中抛异常
throw new Exception();
throw new 自定义异常。
二、扩展一个异常的方式
1,简单方式
2,扩展方式
三、总结
1,结合事务回滚,可以有很好的用户体验
2,可以连续catch()多个不同的异常,并区别对待
3,可以直接throw异常,让上一级来捕捉该异常
实例:
本处逻辑:
上级逻辑:
一、基本用法
Exception()方法是抛出异常的基类。
try{ ... }catch(Exception $e){ ... }
在逻辑中抛异常
throw new Exception();
throw new 自定义异常。
二、扩展一个异常的方式
1,简单方式
class OutsourceNotFoundException extends Exception {}
2,扩展方式
class OutsourceTimeoutException extends Exception { public $status; public function __construct($status, $msg) { $this->status = $status; parent::__construct($msg); } }
三、总结
1,结合事务回滚,可以有很好的用户体验
2,可以连续catch()多个不同的异常,并区别对待
3,可以直接throw异常,让上一级来捕捉该异常
实例:
本处逻辑:
$trans = Yii::app()->db->beginTransaction(); try { //在该方法中,可以抛异常,让上级逻辑来捕捉,并直接返回到前端。 Yii::app()->dispatcher->notify(new sfEvent($this, 'sta.saveTimeoutReason', array('id'=>$params['timeout_reason_id']))); //也可以在本级直接捕捉该异常,保存数据,然后抛出来,再让上一级捕捉(区别是此时异常性质变了,从特殊异常变为常规异常) Yii::app()->dispatcher->notify(new sfEvent($this, 'outsource.complete', array('user_id' => $params['user_id'], 'is_force' => $params['is_force']))); OutsourceStatusLog::log($this,$params['dst_status_id'], $params['user_id'], "确认完成"); $this->status_id = $params['dst_status_id']; $this->save(); $trans->commit(); } catch(FinishCheckException $e) { //【疑问1:如果只有FinishCheckException,即数据保存了。但只保存到抛出异常的位置?后面的呢?】 $this->save(); $trans->commit(); // 结单检测异常属于可控异常, 先把数据保存一下 throw $e; // 抛出的该异常,仍然是FinishCheckException类型(留给上一级捕捉) } catch(Exception $e) { $trans->rollBack(); // 【疑问2:如果捕捉到常规异常就全部回滚?也即除了FinishCheckException异常都回滚】 throw $e; }
上级逻辑:
try { $outsource = Outsource::model()->findByCommOid($oid); if(!$this->current_user->isMemberOfIdc($outsource->idc_id)) { $msg = "你不是xx"; $this->response(array('status' => 1, 'msg' => $msg)); } $result = $outsource->doAction($action, $params); if($result) { $this->user->setFlash('info', $result); } } catch(OutsourceNotFoundException $e) { $this->response(array('status' => 1, 'msg' => $e->getMessage())); } catch(NotCompleteException $e) { $this->response(array('status' => 2, 'msg' => $e->getMessage())); } catch(FinishCheckException $e) { // 结单检测接口, 需要显示当前截单接测结果和进度 $this->response(array('status' => $e->status, 'result' => $e->getMessage())); } catch(OutsourceTimeoutException $e) { // 结单需要检查是否超时 $this->response(array('status' => $e->status, 'result' => $e->getMessage())); } catch(OutsourceOperateNotAllowedException $e) { $error = "该外包单的状态已经发生变化,可能其他用户已经操作。请刷新"; } catch(Exception $e) { Yii::app()->exception_watcher->notify_exception($e); $error = $e->getMessage(); } //返回
发表评论
-
php从5.2升级到5.4
2013-04-24 16:45 6373作者:zccst 现在已有lamp环境,只是php从5.2升 ... -
foreach在引用时的陷阱
2012-12-25 16:13 1773这个陷阱在PHP里存在很久了,先看代码: <?php ... -
php文件操作
2012-05-23 19:34 1214作者:zccst 文件操作一直是我的弱项,在使用Java开发 ... -
php性能(内存)问题
2012-05-03 23:50 1140作者:zccst 遇到这样一个问题 $retArr = a ... -
php函数参数引用调用
2012-05-03 19:50 1758作者:zccst 一、参数的两种调用方式 1,传值调用 2 ... -
PHP开发经验总结
2012-04-27 15:19 1750zccst整理(待续) 1.使用内嵌的HTML代码,而不是P ... -
call_user_func_array和call_user_func函数的用法
2012-04-27 15:15 1986zccst转载 下面来和大家 ... -
php与http(php预定义变量)
2012-02-28 14:04 1356var_dump($_SERVER['REQUEST_URI' ... -
php设置环境变量
2012-01-25 11:40 949实例: $g_config['root'] =dirnam ... -
php5中const、define和static
2011-12-08 10:44 9967一、const 在编程中,我们一般用常量来定义那些在运行时不能 ... -
php上传文件的5种方式
2011-11-20 22:55 4949作者:zccst 一、普通文 ... -
PHP:实现给上传图片加水印的程序代码
2011-11-17 21:17 1302用PHP给上传图片加水印的程序是通过判断文件类型建立图形,然后 ... -
PHP之重要函数
2011-11-04 20:16 1427积少成多——作者:zccst 10,判断必须是整数和是否是 ... -
PHP之类
2011-09-09 18:21 1117关于类的函数 一、与Java相同的类知识 1,类和对象 公有 ... -
PHP之字符串函数
2011-09-07 17:51 1123作者:zccst 2,大小写转换 strtoupper() ... -
PHP调试及代码注释
2011-08-30 14:07 1229一、调试 PHP调试不同于Java 1,常用调试方法: e ... -
PHP之数组
2011-08-04 16:03 1385作者:zccst 5,array_merg ... -
PHP——日期和时间
2011-07-05 14:56 12901,PHP获取当前时间。 ... -
PHP之数组foreach,join
2011-06-08 19:12 2854一,foreach的使用 例如:$arr = array(&q ... -
php之mysql操作
2011-05-18 11:08 1259一、连接,插入,查询 <?php $con = mys ...
相关推荐
以下将详细介绍php异常处理方法,并实例汇总常见的php异常处理技巧。 首先,try关键字用于包含可能抛出异常的代码块。紧接着try块的是一个或多个catch块,用于捕获try块中发生的特定异常。catch块应该紧跟着try块,...
>getMessage().'</b>is:<i>'....总结来说,PHP 的异常处理机制是一种强大的工具,可以帮助开发者更好地管理程序运行过程中的错误和异常情况。通过合理设计和使用异常处理逻辑,可以提高程序的健壮性和用户体验。
计算机后端-PHP最佳开发入门实战课程09-04 PHP异常处理-2.mp4
计算机后端-PHP最佳开发入门实战课程09-04 PHP异常处理-1.mp4
通过对这些源码的分析,我们可以更深入地理解PHP异常处理机制的细节和实际操作。 总之,PHP的异常处理机制是程序健壮性的重要保障。通过合理地使用`try-catch-finally`结构和自定义异常类,我们可以有效地管理错误...
知识点二:PHP异常处理 异常处理是PHP中处理运行时错误的另一种机制。它是一种更加结构化和面向对象的错误处理方式。当发生错误时,可以通过throw关键字抛出一个异常,然后通过try-catch块来捕获和处理这个异常。...
在PHP异常处理中,还存在一个重要的方法getPrevious(),它用于处理嵌套异常。当一个异常被抛出后,开发者可以调用这个方法来访问被嵌套的原始异常。这对于诊断和记录错误详情非常有用,因为它能够提供异常发生的完整...
### PHP异常处理详解 #### 一、PHP异常处理概述 PHP异常处理机制为开发者提供了一种强大且灵活的方式来处理程序运行过程中可能出现的各种错误和异常情况。这种机制的主要优点在于能够将错误处理逻辑与正常业务逻辑...
PHP异常处理是编程中用于处理运行时错误的一种机制,它允许开发者优雅地处理程序中可能出现的问题,而不是让程序突然崩溃。在PHP 5之后,异常处理成为标准的一部分,提供了更强大的错误管理方式。 异常(Exception...
PHP异常处理是编程中处理运行时错误的一种机制,它可以让开发者更有条理地组织错误处理代码,而不必使用传统的条件语句来检查可能发生的错误。异常处理在PHP中是非常重要的一环,特别适合于处理那些意料之外的程序...
轻松学PHP之PHP的错误和异常处理,可以轻松学习PHP。PHP学习的宝典。PHP的错误和异常处理是非常重要的。
- `Exception`类是所有PHP异常的基类,你可以创建自定义异常类来扩展它。 2. **异常处理结构**: - `try`块:包含可能会抛出异常的代码。 - `catch`块:捕获并处理特定类型的异常。在给定的例子中,`catch...
对于PHP这种脚本语言来说,在PHP 5版本之后,引入了面向对象的异常处理方法,这为我们提供了一种更强大和灵活的错误处理方式。 在PHP中,异常处理主要通过Exception类来进行。Exception类是所有内置的异常类的基类...
"xser_exception_handler" 是一个专门为PHP框架设计的自定义异常处理器,用于增强标准的PHP异常处理功能,提升程序的健壮性和用户体验。在这个框架版本v0.1中,我们看到了对异常捕获和处理的定制化实现。 异常处理...
在PHP开发中,异常处理和错误捕获是至关重要的环节,它们能够保证程序在面对各种异常情况时,能够妥善处理并给出相应的反馈,从而保证程序的健壮性和用户体验。本文将深入探讨PHP中关于异常和错误处理的相关知识点。...
在PHP编程中,异常处理是一种重要的错误处理机制,它允许开发者以更为优雅的方式处理程序运行时可能出现的问题。从PHP 5.1.0版本开始,引入了Exception类,使得异常处理更加规范和灵活。异常处理的基本语法结构包括...