异常指的是在程序运行过程中发生的异常事件,通常是由外部问题所导致的。
异常处理是程序开发中经常遇到的任务,如何优雅地处理异常,从一定程度上反映了你的程序是否足够严谨。
在本次的项目开发中,我们将异常大致分为 用户异常 和 系统异常,接下来我们将分别对其讲解和代码实现。
- 用户错误行为触发的异常
比如访问一个被下架的商品时触发的异常,对于此类异常我们需要把触发异常的原因告知用户。
我们暂时把这类异常命名为 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(['msg' => $this->message], $this->code);
}
return view('pages.error', ['msg' => $this->message]);
}
}
现在来创建这个错误页面:
`
@extends('layouts.app')
@section('title', '错误')
@section('content')
<div class="card">
<div class="card-header">错误</div>
<div class="card-body text-center">
<h1>{{ $msg }}</h1>
<a class="btn btn-primary" href="{{ route('root') }}">返回首页</a>
</div>
</div>
@endsection
`
屏蔽指定异常写日志可以在app/Exceptions/Handler.php
中注册
protected $dontReport = [
InvalidRequestException::class,
];
当一个异常被触发时,Laravel 会去检查这个异常的类型是否在 $dontReport 属性中定义了,如果有则不会打印到日志文件中。
调用异常方法
use App\Exceptions\InvalidRequestException;
....
throw new InvalidRequestException('抛出错误提示');
....
本文地址:laravel框架的异常处理
我们提供的产品解决方案 >>

01 AI万词霸屏

02 关键词优化(SEO)

03 免费SEO诊断

04 SEO营销推广

05 SEO方案定制

06 网站降权恢复

07 整站优化

08 微信小程序

09 微商城开发

10 网站竞价托管

11 社区团购系统

12 积分管理系统
为您推荐
-
laravle 观察者observer的使用方法 网站开发
-
织梦dedecms时间/日期调用方法 网站开发
-
laravel轻松实现图片压缩/剪裁/添加水印功能 网站开发
-
Laravel框架 Models模型常用属性 网站开发
-
织梦cms-万能循环标签loop的使用 网站开发
-
laravel框架轻松完成用户登陆注册功能 网站开发
-
laravel中策略模式policy的使用方法 网站开发
-
laravel 常用Artisan命令 网站开发
-
laravel添加辅助函数的方法 网站开发
-
laravel-admin汉化技巧 网站开发
-
laravel框架怎么在公共的模板文件里面定义不同的class来控制页面样式 网站开发
-
dedecms列表页面dede:field.title的斜杠怎么去掉 网站开发
-
dedecms常用的列表循环自增长方法 网站开发
-
如何优雅的给laravel添加路由 网站开发
-
laravel框架添加自定义函数 网站开发
-
thinkphp5.1去掉缓存文件 网站开发
-
怎样实现给DEDE的栏目增加栏目图片? 网站开发
-
laravel框架是怎么发送邮件的 网站开发
-
laravel框架怎么使用队列 网站开发
-
dedecms栏目没有子栏目会显示同级栏目怎么修改 网站开发
在线留言
免费获取解决方案!
Write here