Laravel 11:如何通过app.php的withExceptions调用原Handler.php类
在Laravel 11中继续使用自定义异常处理类
Laravel 11确实调整了异常处理的配置方式,但完全可以沿用你之前Laravel 10里的自定义Handler类,具体步骤如下:
- 保留你的自定义
Handler类
确保app/Exceptions/Handler.php文件存在,内容和你之前的一致:
namespace App\Exceptions; use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler; class Handler extends ExceptionHandler { // 这里保留你原来的所有自定义逻辑,比如异常上报、自定义响应等 }
- 在
bootstrap/app.php中指定自定义处理器
找到withExceptions闭包,通过handler()方法传入你的自定义类即可:
->withExceptions(function (\Illuminate\Foundation\Configuration\Exceptions $exceptions) { // 绑定自定义异常处理类 $exceptions->handler(\App\Exceptions\Handler::class); })
这样配置后,Laravel 11就会自动使用你的自定义Handler类处理所有异常,和Laravel 10中的行为完全一致。如果你的Handler类里有register、render或report等自定义方法,都会正常生效。
内容的提问来源于stack exchange,提问作者Jon Menard
相关产品推荐
相关产品推荐

