【PHP】Laravel开发 —— 九、异常提示界面

本文介绍了如何在 Laravel 开发中优雅地处理异常,包括区分用户异常和系统异常。对于用户异常,通过创建自定义异常类如 `InvalidRequestException` 并定制错误页面提供友好的用户体验。同时,通过调整 `Handler.php` 文件避免这类异常记录到日志。而对于系统内部异常,如数据库连接失败,创建 `InternalException` 类隐藏敏感信息,并提供用户友好的错误提示。最后,将这些异常应用到邮箱验证功能中,展示了实际效果。
摘要由CSDN通过智能技术生成

优雅地处理异常

上面我们实现邮箱验证时,处理一些非正常流程时使用了 throw new Exception 抛出异常终止流程,比如:

if ($user->email_verified) {
   
    throw new Exception('你已经验证过邮箱了');
}

但是这种异常提示,不够友好。

异常

在本次的项目开发中,我们将异常大致分为 用户异常系统异常

1. 用户错误行为触发的异常

比如上次已经验证过邮箱的用户再次申请激活邮件触发的异常,对于此类我们需要把触发原因告知用户。

我们把这类异常命名为 InvalidRequestException,可以通过 make:exception 命令来创建:

$ php artisan make:exception InvalidRequestException

新创建的异常文件保存在 app/Exceptions/ 目录下:

app/Exceptions/InvalidRequestException.php

<?php

namespace App\Exceptions;

use Exception;
use Illuminate\Http\Request;

class InvalidRequestException extends Exception
{
   
    public function __construct(string $message = "", int $code = 400)
    {
   
        parent::__construct($message, $code);
    }

    public function render(Request $request)
    {
   
        if ($request->expectsJson()) {
   
            // json() 方法第二个参数就是 Http 返回码
            return response()->json(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值