多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
目录 [TOC] ## Exception Handler 为了方便用户对异常进行处理,WorkerA 提供了 ExceptionHandler 来进行异常处理。 不对异常进行处理的话,Handler 会调用 WorkerF\Exceptions\ExceptionHandler 的 handle 方法,默认返回一个 HTML 错误页面方便浏览器查看。 你可以在 app/Exceptions/Handler.php 中进行异常处理: ```php namespace App\Exceptions; use WorkerF\Exceptions\ExceptionHandler; // 继承自 WorkerF\Exceptions\ExceptionHandler class Handler extends ExceptionHandler { public function handle(\Exception $e) { // 判断异常的类型进行处理,返回 HTTP 响应 if ($e instanceof SomeException) { // 返回 json 数据 return [ 'status' => 1, 'msg' => $e->getMessage(), 'data' => 'something', ]; } // 使用默认的异常处理 (返回错误 HTML 信息) return parent::handle($e); } } ``` ## HTTP Exceptions 如果你使用默认的 WorkerF\Exceptions\ExceptionHandler 进行异常处理,那么你可以给异常设置 httpCode 属性来控制 HTTP 响应的状态码。 例如: ```php // 控制器中抛出异常 $e = new \LogicException("Ops...Page not found!"); $e->httpCode = 404; // 设置状态码 throw $e; // 抛出异常 ``` HTTP 响应头的状态行会变为 HTTP/1.1 404 Not Found。 可用的 httpCode 见 [statusCodes](https://github.com/wazsmwazsm/WorkerF/blob/master/src/WorkerF/Http/Response.php#L20)。