thinkphp6自定义抛出异常
时间: 2023-08-30 18:05:15 浏览: 161
在thinkphp6中,可以通过以下方式自定义抛出异常:
1. 创建自定义异常类
首先,我们需要创建一个自定义的异常类,继承自think\Exception类,例如:
```php
namespace app\exception;
use think\Exception;
class MyException extends Exception
{
protected $message = '自定义异常信息';
protected $code = 10001;
}
```
在上面的例子中,我们创建了一个名为MyException的自定义异常类,设置了异常信息和异常代码。
2. 抛出自定义异常
在需要抛出异常的地方,可以通过以下方式抛出自定义异常:
```php
throw new MyException();
```
或者:
```php
throw new MyException('自定义异常信息', 10001);
```
在上面的例子中,我们使用了自定义异常类MyException,并传入了异常信息和异常代码。
3. 异常处理
最后,我们需要在异常处理的地方捕获并处理自定义异常,例如:
```php
namespace app\exception;
use think\exception\Handle;
class ExceptionHandle extends Handle
{
public function render(\Exception $e)
{
if ($e instanceof MyException) {
// 处理自定义异常
return json(['code' => $e->getCode(), 'msg' => $e->getMessage()]);
}
// 其他异常交给系统处理
return parent::render($e);
}
}
```
在上面的例子中,我们创建了一个名为ExceptionHandle的异常处理类,继承自think\exception\Handle类,重写了render方法,在该方法中捕获并处理自定义异常MyException。
当系统抛出自定义异常时,会调用ExceptionHandle的render方法进行处理,返回一个相应的响应结果。如果抛出的异常不是自定义异常,则交给系统默认的异常处理方式处理。
阅读全文