swoft2 教程系列-错误处理

51 阅读1分钟

简介

Swoft 拥有完善的异常错误处理机制,与 FPM 模式有所不同。Swoft 根据不同的场景类型将错误进行了区分。因此你无需关心在不同场景下的错误如何处理,只需实现对应场景的错误处理逻辑即可。Swoft 会自动调度对应的错误处理器。

异常处理

通常我们把异常类放置 app/Exception 目录下 ,异常类处理器放置 app/Exception/Handler 目录下. 异常分为两部分。自定义的 Exception 异常类,和异常处理类 ExceptionHandler

我们可以自定义异常处理逻辑,例如程序出错了,在自己的异常类里上报给服务器,并给用户友好的提示.

两个简单的示例

验证器异常的处理

文件 App/Exception/Handler/ValidatorExceptionHandler.php

<?php declare(strict_types=1);

namespace App\Exception\Handler;
use Swoft\Error\Annotation\Mapping\ExceptionHandler;
use Swoft\Http\Message\Response;
use Swoft\Http\Server\Exception\Handler\AbstractHttpErrorHandler;
use Swoft\Validator\Exception\ValidatorException;

/**
 * Class ValidatorExceptionHandler
 *
 * @since 2.0
 *
 * @ExceptionHandler(ValidatorException::class)
 */
 class ValidatorExceptionHandler ex