搜索
首页php教程php手册YII Framework教程之异常处理详解,yiiframework

YII Framework教程之异常处理详解,yiiframework

本文讲述了YII Framework异常处理。分享给大家供大家参考,具体如下:

异常无处不在,作为程序员,活着就是为了创造这些异常,然后修复这些异常而存在的。YII框架封装了PHP的异常,让异常处理起来更简单。

使用 YII处理错误和异常的配置方法

你可以在入口文件中定义YII_ENABLE_ERROR_HANDLER和YII_ENABLE_EXCEPTION_HANDLER为true.

引发异常的情况

1.触发onError或者onException事件

2.人为抛出异常。例如

throw new ExceptionClass('错误信息');//异常的基类
throw new CHttpException(404,'此页面不存在');//面向最终用户的类

异常的显示视图

当一个错误被转发给组件CErrorHandler的时候,它会选择合适的视图来显示错误。
CErrorHandler会搜索合适的视图来显示错误信息,搜索的顺序如下:

1. WebRoot/themes/ThemeName/views/system: 在当前主题视图下的system目录中。
2. WebRoot/protected/views/system: 在应用的默认视图的system目录中。
3. yii/framework/views: 在Yii提供的标准视图目录中。

使用action来处理捕捉的异常错误.

修改配置文件

/yii_dev/testwebap/protected/config/main.php
    'errorHandler'=>array(
// use 'site/error' action to display errors
      'errorAction'=>'site/error',
    ),

用来指定处理错误的action。例如site controller中的error action
actionError默认代码如下

/**
 * This is the action to handle external exceptions.
 */
public function actionError()
{
  if($error=Yii::app()->errorHandler->error)
  {
    if(Yii::app()->request->isAjaxRequest)
      echo $error['message'];
    else
      $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: 发生错误的代码的上下文。

异常日志

一个error级别的错误信息会在错误发生时候被记录。如果这个错误是由PHP warning 或 notice引发的,那么这个消息将会被记录在php这个分类中;如果错误信息是由未捕获的异常所引起的,那么分类将是exception.ExceptionClassName(对于CHttpException来说,它的statusCode也将被追加到分类名中)。开发者可以使用这些记录来监测应用执行时候的错误信息异常处理的方法。

更多关于Yii相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

您可能感兴趣的文章:

  • PHP YII框架开发小技巧之模型(models)中rules自定义验证规则
  • Nginx配置PHP的Yii与CakePHP框架的rewrite规则示例
  • 使用Composer安装Yii框架的方法
  • Yii使用migrate命令执行sql语句的方法
  • YII Framework框架使用YIIC快速创建YII应用之migrate用法实例详解
  • YII Framework框架教程之使用YIIC快速创建YII应用详解
  • YII Framework框架教程之国际化实现方法
  • YII Framework框架教程之缓存用法详解
  • YII Framework框架教程之安全方案详解
  • YII Framework框架教程之日志用法详解
  • Yii rules常用规则示例
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中