symfony2中对异常的处理,个人总结
来源:互联网 发布:麦克风扩音软件 编辑:程序博客网 时间:2024/04/30 09:24
习惯了之前的出现错误,就立即解决的方式。现在在用symfony的用法,发现原来自己一直错过了一个东西:Exception
现在讲讲symfony2中如何处理错误
1.首先自己在src/AppBundle下建立了一个Exception的文件夹,
BaseException.php的异常基类
namespace AppBundle\Exception;class BaseException extends \Exception{ /** * 未登录错误 */ const ERROR_CODE_UNLOGIN = 1001; /** * 没有权限错误 */ const ERROR_CODE_NO_AUTHORITY = 1002; /** * 参数错误 */ const ERROR_CODE_ILLEGAL_PARAMETER = 2001; /** * 未知错误 */ const ERROR_CODE_UNKNOWN = 5000; /** * 服务器内部错误 */ const ERROR_CODE_INTERNAL = 5001;}这里还需要对其进行赋值
2.建一个EventListener文件-》ExceptionListener.phpNoAuthorityException.phpnamespace Material\Exception;/** * 无权限异常类 * * @author zhujian <zhujian@thinkerx.com> */class NoAuthorityException extends BaseException{ function __construct($message) { parent::__construct($message, BaseException::ERROR_CODE_NO_AUTHORITY); }}UnLoginException.phpnamespace Material\Exception;/** * 未登录异常类 * * @author zhujian <zhujian@thinkerx.com> */class UnLoginException extends BaseException{ function __construct($message) { parent::__construct($message, BaseException::ERROR_CODE_UNLOGIN);
<?phpnamespace Material\EventListener;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\HttpFoundation\JsonResponse;use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent;class ExceptionListener{ public function onKernelException(GetResponseForExceptionEvent $event) { $request = $event->getRequest(); $exceptionListener = null; $exceptionListener = new AjaxExceptionListener(); $exceptionListener->onKernelException($event); }}3.建一个EventListener文件-》AjaxExceptionListener.php
<?phpnamespace Material\EventListener;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\HttpFoundation\JsonResponse;use Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent;class AjaxExceptionListener extends ExceptionListener{ public function onKernelException(GetResponseForExceptionEvent $event) { $exception = $event->getException(); $response = new JsonResponse(array( 'status' => $exception->getCode(), 'msg' => $exception->getMessage(), )); $event->setResponse($response); }}这样的话有错误,我们就可以进行抛出错误,最后在Event进行监听,处理。
1 0
- symfony2中对异常的处理,个人总结
- javascript中对各种事件处理程序的个人总结
- 学习过程中对遇到的js 事件集中处理的个人白话总结
- symfony2中对于输入时间进行查询,时间的处理。
- struts框架中对异常的处理
- 在单元测试中对异常的处理
- spring中对异常的统一处理
- symfony2中mysql和mongodb的增删改查总结
- 对异常的处理
- java中异常的处理总结(二)
- 在MVC中处理异常的总结
- Spring 中异常处理方法的总结
- Symfony2 中event的使用
- 个人对多线程的总结
- 对C++中异常处理的语法的认识
- .net中对异常处理的一点简单体会~~~
- java编程过程中对处理异常的心得
- Java thread中对异常的处理策略
- android模拟器Unexpected value from nativeGetEnabledTags: 0 问题解决方法
- 最小的k个数
- CocoaPosd详解
- codeforces 608B Hamming Distance Sum 部分和+思路转换
- 关于OPENGL与OPENGL ES的区别
- symfony2中对异常的处理,个人总结
- mybatis 中#与$的区别
- SpringMVC整合DWR(Maven项目+jetty插件运行)
- shell 练习
- iOS symbol(s) not found for architecture i386 BUG解决办法
- Android 系统启动流程简介
- linux PATH环境变量设置与读取
- 如何修改Vs2008环境变量windowsSdkDir,对于找不到"windows.h"