From ee171f3e87da91f8482e8fef498ed84c2b29bac7 Mon Sep 17 00:00:00 2001 From: yangbai Date: Thu, 29 Sep 2016 17:10:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0exception=E4=BB=8B=E7=BB=8D?= =?UTF-8?q?=EF=BC=8C=E5=A2=9E=E5=8A=A0=E4=B8=9A=E5=8A=A1=E5=8F=AF=E4=BB=A5?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E5=BC=82=E5=B8=B8=E7=B1=BB=E6=9D=A5=E6=9B=BF?= =?UTF-8?q?=E4=BB=A3=E6=A1=86=E6=9E=B6=E8=87=AA=E5=B7=B1=E5=A4=84=E7=90=86?= =?UTF-8?q?=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zh/web/exception.md | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/zh/web/exception.md b/zh/web/exception.md index 882d365..d5ca807 100644 --- a/zh/web/exception.md +++ b/zh/web/exception.md @@ -9,10 +9,43 @@ 2. 如果异常类型是PageNotFoundException,则会跳转配置的404页面。 3. 如果异常类型是InvalidRouteException,则会跳转到配置的404页面。 4. 如果是exception code在业务异常定义范围内,则会根据request类型选择输出json或者html错误信息 -5. 如果上述异常均未匹配,如果有配置的500页面则跳转,否则输出霸王龙也页面。 +5. 如果上述异常均未匹配,如果有配置的500页面则跳转,否则输出霸王龙页面。 > 以上流程从1~5按顺序逐个匹配,当匹配上某一条则后面的都不执行,如果都没有匹配上会走5的逻辑。 + +当然,也可以在项目中通过配置文件`exception.php`来增加异常类到框架异常调用链的顶端,优先处理。如下: + +`resource/share/exception.php` + +``` +return array( + //handles里面的内容会追加到框架异常调用链的最顶部 + 'handles' => array( + \Store\Common\Exception\StoreExceptionHandle::class + ) +); +``` + +`Common/Exception/StoreExceptionHandle.php` + +``` +namespace Store\Common\Exception; + +use Zan\Framework\Contract\Foundation\ExceptionHandler; +use Zan\Framework\Foundation\Core\Path; +use Zan\Framework\Foundation\Core\RunMode; +use Zan\Framework\Network\Http\Response\JsonResponse; +use Zan\Framework\Network\Http\Response\Response; + +class StoreException implements ExceptionHandler { + + public function handle(\Exception $e) { + //这里写自己的异常处理逻辑,会优先处理。。。 + } +``` + + ### Debug模式下 -如果在debug模式下,在执行上述流程之外,还会在STDOUT中打印异常信息,方便调试。 \ No newline at end of file +如果在debug模式下,在执行上述流程之外,还会在STDOUT中打印异常信息,方便调试。