- 浏览: 3319430 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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转
错误处理目录
1,引发异常
2,显示错误
3,使用一个动作来处理错误
4,消息记录
Yii提供了一个完整的,基于PHP5异常处理的错误处理机制。当一个应用开始运行,进行用户请求的处理的时候,会注册handleError方法来处理PHP warnings和notices信息;同时也注册加handleException方法来处理未被捕获的PHP异常。因此,如果在应用运行期间出现一个PHP warning/notice 或者一个未捕获的PHP异常,错误处理器就会接过控制权来运行必要的处理机制。
提示: 错误处理器的注册是在应用中的constructor方法中进行的,使用了PHP函数set_exception_handler 和set_error_handler。 如果你不想让Yii来处理错误和异常,你可以在入口文件中定义YII_ENABLE_ERROR_HANDLER和YII_ENABLE_EXCEPTION_HANDLER为false.
默认情况下,在触发onError事件(或onException事件)的时候,errorHandler(或exceptionHandler)将被触发。如果错误或者异常未被任何事件所处理,那么就需要运行errorHandler组件来处理了。
1. 引发异常
在Yii中引发异常和在普通PHP文件中没什么两样。你可以使用下面的代码来抛出异常:
throw new ExceptionClass('错误信息');
Yii定义了两个异常类:CException和CHttpException。前者是一个通用的异常类,而后者用于对最终用户显示异常信息。同时,后者有一个statusCode属性来代表HTTP状态码。异常的类型决定了显示效果,下面会细说。
提示: 想要告诉用户某个操作是错误的,那么引发一个CHttpException异常是最简单的方法了。比如说,如果用户在URL中提供了一个无效的ID值,我们可以显示一个404错误:
2. 显示错误
当一个错误被转发给组件CErrorHandler的时候,它会选择合适的视图来显示错误。如果这个错误要显示给最终用户的(比如说一个CHttpException)那么会使用名为errorXXX的视图来显示错误。这个XXX代表着HTTP错误码(比如说400,404,500等)。如果这是个内部错误,应该只能被开发者看到,那么将使用的视图名是exception。在后一种中,将会显示完整的调用栈信息和错误行信息。
信息: 当应用运行在生产模式时,所有的错误,包括内部错误都会使用视图errorXXX。这是因为调用的栈信息和错误行信息可能包含一些敏感信息。这种情况下,开发者应该依靠错误日志来确定错误原因。
CErrorHandler会搜索合适的视图来显示错误信息,搜索的顺序如下:
WebRoot/themes/ThemeName/views/system: 在当前主题视图下的system目录中。
WebRoot/protected/views/system: 在应用的默认视图的system目录中。
yii/framework/views: 在Yii提供的标准视图目录中。
因此,如果你想要自定义错误显示,可以直接在system视图目录中或者主题的system视图目录中创建一个视图文件。每个视图文件都是一个包含许多HTML代码的普通PHP文件。参考框架的view目录下的文件,可以获得更多信息。
3. 使用一个动作来处理错误
Yii也可以使用控制器 动作来处理错误显示。实现的方法是在应用的配置文件中配置一个错误处理器。
return array(
......
'components'=>array(
'errorHandler'=>array(
'errorAction'=>'site/error',
),
),
);
上面的代码中,我们配置了CErrorHandler::errorAction属性,属性值是一个路由site/error。这个路由指向SiteController中的error。当然,你也可以使用其他的路由。
我们可以这样来编写error动作:
public function actionError()
{
if($error=Yii::app()->errorHandler->error)
$this->render('error', $error);
}
在这个动作中,首先从CErrorHandler::error中取得详细的错误信息。如果取得的信息非空,就使用CErrorHandler::error返回的信息来渲染error视图。CErrorHandler::error返回的信息是一个数组,结构如下:
code: HTTP 状态码(比如 403, 500);
type: 错误类型(比如 CHttpException, PHP Error);
message: 错误信息;
file: 发生错误的PHP文件名;
line: 错误所在的行;
trace: 错误的调用栈信息;
source: 发生错误的代码的上下文。
提示: 我们检查CErrorHandler::error是否为空的原因是error动作可以被用户访问到,这时候也许并没有什么错误。当我们传递$error数组给视图,它将会被自动释放为独立的变量。所以,在视图中我们可以使用$code,$type来访问这些信息。
4. 消息记录
一个error级别的错误信息会在错误发生时候被记录。如果这个错误是由PHP warning 或 notice引发的,那么这个消息将会被记录在php这个分类中;如果错误信息是由未捕获的异常所引起的,那么分类将是exception.ExceptionClassName(对于CHttpException来说,它的statusCode也将被追加到分类名中)。开发者可以使用这些记录来监测应用执行时候的错误信息
参考资料
http://www.yiiframework.com/doc/guide/1.1/zh_cn/topics.error
如果您觉得本文的内容对您的学习有所帮助,您可以微信:
错误处理目录
1,引发异常
2,显示错误
3,使用一个动作来处理错误
4,消息记录
Yii提供了一个完整的,基于PHP5异常处理的错误处理机制。当一个应用开始运行,进行用户请求的处理的时候,会注册handleError方法来处理PHP warnings和notices信息;同时也注册加handleException方法来处理未被捕获的PHP异常。因此,如果在应用运行期间出现一个PHP warning/notice 或者一个未捕获的PHP异常,错误处理器就会接过控制权来运行必要的处理机制。
提示: 错误处理器的注册是在应用中的constructor方法中进行的,使用了PHP函数set_exception_handler 和set_error_handler。 如果你不想让Yii来处理错误和异常,你可以在入口文件中定义YII_ENABLE_ERROR_HANDLER和YII_ENABLE_EXCEPTION_HANDLER为false.
默认情况下,在触发onError事件(或onException事件)的时候,errorHandler(或exceptionHandler)将被触发。如果错误或者异常未被任何事件所处理,那么就需要运行errorHandler组件来处理了。
1. 引发异常
在Yii中引发异常和在普通PHP文件中没什么两样。你可以使用下面的代码来抛出异常:
throw new ExceptionClass('错误信息');
Yii定义了两个异常类:CException和CHttpException。前者是一个通用的异常类,而后者用于对最终用户显示异常信息。同时,后者有一个statusCode属性来代表HTTP状态码。异常的类型决定了显示效果,下面会细说。
提示: 想要告诉用户某个操作是错误的,那么引发一个CHttpException异常是最简单的方法了。比如说,如果用户在URL中提供了一个无效的ID值,我们可以显示一个404错误:
// 如果提交的ID是无效的 throw new CHttpException(404,'此页面不存在');
2. 显示错误
当一个错误被转发给组件CErrorHandler的时候,它会选择合适的视图来显示错误。如果这个错误要显示给最终用户的(比如说一个CHttpException)那么会使用名为errorXXX的视图来显示错误。这个XXX代表着HTTP错误码(比如说400,404,500等)。如果这是个内部错误,应该只能被开发者看到,那么将使用的视图名是exception。在后一种中,将会显示完整的调用栈信息和错误行信息。
信息: 当应用运行在生产模式时,所有的错误,包括内部错误都会使用视图errorXXX。这是因为调用的栈信息和错误行信息可能包含一些敏感信息。这种情况下,开发者应该依靠错误日志来确定错误原因。
CErrorHandler会搜索合适的视图来显示错误信息,搜索的顺序如下:
WebRoot/themes/ThemeName/views/system: 在当前主题视图下的system目录中。
WebRoot/protected/views/system: 在应用的默认视图的system目录中。
yii/framework/views: 在Yii提供的标准视图目录中。
因此,如果你想要自定义错误显示,可以直接在system视图目录中或者主题的system视图目录中创建一个视图文件。每个视图文件都是一个包含许多HTML代码的普通PHP文件。参考框架的view目录下的文件,可以获得更多信息。
3. 使用一个动作来处理错误
Yii也可以使用控制器 动作来处理错误显示。实现的方法是在应用的配置文件中配置一个错误处理器。
return array(
......
'components'=>array(
'errorHandler'=>array(
'errorAction'=>'site/error',
),
),
);
上面的代码中,我们配置了CErrorHandler::errorAction属性,属性值是一个路由site/error。这个路由指向SiteController中的error。当然,你也可以使用其他的路由。
我们可以这样来编写error动作:
public function actionError()
{
if($error=Yii::app()->errorHandler->error)
$this->render('error', $error);
}
在这个动作中,首先从CErrorHandler::error中取得详细的错误信息。如果取得的信息非空,就使用CErrorHandler::error返回的信息来渲染error视图。CErrorHandler::error返回的信息是一个数组,结构如下:
code: HTTP 状态码(比如 403, 500);
type: 错误类型(比如 CHttpException, PHP Error);
message: 错误信息;
file: 发生错误的PHP文件名;
line: 错误所在的行;
trace: 错误的调用栈信息;
source: 发生错误的代码的上下文。
提示: 我们检查CErrorHandler::error是否为空的原因是error动作可以被用户访问到,这时候也许并没有什么错误。当我们传递$error数组给视图,它将会被自动释放为独立的变量。所以,在视图中我们可以使用$code,$type来访问这些信息。
4. 消息记录
一个error级别的错误信息会在错误发生时候被记录。如果这个错误是由PHP warning 或 notice引发的,那么这个消息将会被记录在php这个分类中;如果错误信息是由未捕获的异常所引起的,那么分类将是exception.ExceptionClassName(对于CHttpException来说,它的statusCode也将被追加到分类名中)。开发者可以使用这些记录来监测应用执行时候的错误信息
参考资料
http://www.yiiframework.com/doc/guide/1.1/zh_cn/topics.error
如果您觉得本文的内容对您的学习有所帮助,您可以微信:
发表评论
-
Yii隐藏index.php文件的步骤
2014-06-14 14:03 12035作者:zccst 1.修改Apache的配置httpd.co ... -
YII之 redirect 与contoller之间的方法调用
2014-05-31 18:44 11304作者:zccst 一个contoller里怎么调用另一个co ... -
yii中设置默认时区和语言
2013-04-24 16:28 3525作者:zccst 把php从5.2升级到5.4后,发现5. ... -
Yii异常解决办法
2013-04-23 17:15 1188作者:zccst 在Yii的项目中有一个../protect ... -
Yii之HttpRequest相关
2012-08-16 18:35 5120作者:zccst yii中的HttpRequest很像Jav ... -
yii之Log(日志)使用
2012-06-07 19:17 24948作者:zccst Yii 提供了 ... -
Yii之urlManager相关
2012-03-31 13:04 7111作者:zccst 首先urlManager是CUrlMan ... -
yii框架的执行过程
2012-03-11 14:09 3776作者:zccst 二、controllers里的$this ... -
Yii中引入module
2012-03-11 14:06 4972作者:zccst 一、controller与layout/ ... -
Yii->user(当前用户)相关
2012-03-02 17:50 21708作者:zccst 常用的用法是 class Contro ... -
如何在纯js文件中设置yii方式的url地址
2012-02-20 20:56 3337作者:zccst 1,在siteController.ph ... -
Yii使用filter进行访问控制
2012-02-16 19:23 15015Yii使用filter进行访问控制 作者:zccst 在Co ... -
Yii控制层处理结果返回前端的三种方式(render)
2012-01-12 16:28 31330Yii控制层处理结果返回前端的三种方式 作者:zccst ... -
Yii之widget专题
2012-01-12 16:14 11552作者:zccst 关于widgets ... -
Yii中使用session防止重复提交
2012-01-09 12:13 3214表单提交时,由于网速等原因,会出现重复提交的现象。 一、从前 ... -
yii中引入js和css文件
2011-12-29 20:10 35673作者:zccst 四、在视图层(../views/..)添加 ... -
Yii设置分页
2011-12-11 16:41 46241,在../models/NewDemand.php中定义pa ... -
在yii中使用session和cookie
2011-12-08 09:41 17321作者:zccst 2014-6-10 yii 操作sess ... -
Yii中引入php文件及插件
2011-11-03 14:32 24576作者:zccst 一、设置环境变量(在PHP) echo g ... -
YII初步
2011-06-03 22:19 2405安装过程,文档里有。 一、搭建Yii环境可能遇到的问题 1, ...
相关推荐
本文讲述了YII Framework异常处理。分享给大家供大家参考,具体如下: 异常无处不在,作为程序员,活着就是为了创造这些异常,然后修复这些异常而存在的。YII框架封装了PHP的异常,让异常处理起来更简单。 使用 YII...
Yii已经默认已经在CApplication上实现了异常和错误的接管,这是通过php的set_exception_handler,set_error_handler实现的。通过这两个PHP内置函数,可以对程序中未捕获的异常以及错误进行接管处理,从而提高程序的...
Yii2框架中的全局异常处理是通过components配置中的errorHandler组件实现的。开发者可以自定义异常处理器,通过修改配置文件中的errorAction指向一个自定义的异常处理Action。例如,在config/web.php配置文件中,...
Yii 2.x应用程序中的自定义错误处理 该模块允许您将其处理挂在Exceptions上。 ###何时需要###例如,捕获“危险”的用户操作。 发生错误时,您可以记录数据并跟踪特定用户或IP的ForbiddenHttpException或...
“yii框架中文手册教程.pdf”是Yii框架的中文版官方手册,它是学习Yii框架的重要资源。这份PDF文档通常会包括以下内容: 1. **安装与配置**:介绍如何在服务器上安装Yii,以及设置基本的项目环境。 2. **快速入门**...
Yii2 的 `yii\log` 组件可以帮助记录和分析系统运行中的事件和异常,而 `yii\swiftmailer` 可以方便地发送邮件通知。API接口开发则可以利用Yii2的RESTful特性,快速构建符合REST原则的API,方便前后端分离的项目开发...
控制器(CController)是处理用户请求的中心,它包含了动作(Action)和过滤器(Filter)。过滤器可以在执行动作之前或之后运行,提供了权限检查、日志记录等功能。 此外,Yii提供了丰富的缓存机制,包括数据缓存...
将Yii2与Swoole结合,可以极大地提升Yii2应用的性能,特别是对于处理高并发、低延迟的场景,如实时聊天、游戏服务器、API接口等。 标题"yii2swoole让yii2运行在swoole上"指出的核心知识点是: 1. **Yii2框架与...
标题 "YII 通用CURD外部Action 适合单表" 提到的是在Yii框架中创建一个通用的CURD(创建、读取、更新、删除)操作的外部Action,这种Action适用于处理单个数据表的常见数据库操作。在Yii框架中,Action是Controller...
- **路由和控制器**:定义URL到处理程序的映射,控制器处理请求并返回响应。 - **视图**:负责渲染数据。 - **身份验证和授权**:提供多种安全机制,如登录、权限控制、CSRF防护。 - **缓存**:支持多种缓存策略,如...
Yii框架是一款高效的、基于组件的PHP开发框架,用于...总之,Yii框架中文手册教程和YII模板资源是学习和开发Yii应用的宝贵资料。通过深入学习和实践,开发者可以充分利用Yii的强大功能,构建出高效、可扩展的Web应用。
1. **错误处理**:Yii框架提供了强大的异常处理和错误处理机制。开发者可以利用框架的异常处理器来捕获和处理程序中抛出的异常。同时,框架也允许开发者自定义错误处理逻辑。 2. **日志处理**:日志记录是任何Web...
- 错误和异常处理:提供了一套强大的错误和异常处理机制,确保应用在出现问题时能够优雅地处理。 - 安全性:内置了防止SQL注入、XSS攻击的安全组件,确保应用安全。 - RESTful API支持:方便创建和消费RESTful ...
1. MVC(模型-视图-控制器)架构模式:Yii 遵循 MVC 设计模式,将应用程序逻辑分为三个主要部分:模型(处理数据和业务逻辑),视图(负责展示数据),以及控制器(协调模型和视图)。这种分离有助于代码组织和可...
此外,其代码经过精心设计和优化,确保在处理大量请求时依然快速响应。 2. **MVC(模型-视图-控制器)架构**:Yii 实现了MVC模式,分离了业务逻辑、数据和用户界面,使得代码组织有序,易于维护。 3. **数据库支持...
1. Action定义:在Yii中,Action通常以方法的形式存在,方法名以单词"action"开头。开发者还可以定义Action类,这种方式能实现Action的重用。 2. URL解析:Yii的URL解析严格区分大小写,因此,开发者在设置路由时...
- **错误处理与异常管理**:掌握 Yii2.0 的错误处理机制,提高应用的健壮性。 - **安全特性**:深入了解 Yii2.0 的安全特性,例如防止 SQL 注入、XSS 攻击等。 #### 四、学习建议 - **实践为主**:理论学习的...