在 ThinkPHP 框架中,我们可以通过自定义异常类来捕获并处理异常。具体的步骤如下:
首先,我们需要创建一个自定义的异常类。可以在 app\exception 目录下创建一个 CustomException.php 文件,并在其中定义一个 CustomException 类,继承自 think\Exception 类。
namespace app\exception;
use think\Exception;
class CustomException extends Exception
{
}
在需要抛出异常的地方,可以通过 throw 关键字来抛出我们定义的异常。例如:
if ($param == null) {
    throw new CustomException('参数不能为空');
}
在 app\exception 目录下创建一个 handler.php 文件,用于处理异常。在该文件中,我们可以根据异常的类型来进行不同的处理。例如:
namespace app\exception;
use think\exception\Handle;
class ExceptionHandler extends Handle
{
    public function render(\Exception $e)
    {
        if ($e instanceof CustomException) {
            // 自定义异常处理
            return show(0, $e->getMessage());
        } else {
            // 其他异常处理
            return parent::render($e);
        }
    }
}
在该例子中,我们通过判断异常类型是否为 CustomException,来进行自定义的异常处理。如果是其他类型的异常,则调用父类的 render 方法进行处理。
以上就是在 ThinkPHP 框架中自定义异常类的步骤。需要注意的是,在抛出异常后,需要进行异常处理,否则会直接显示错误信息给用户,影响用户体验。