一、创建自定义异常类基类 app/lib/exception/BaseException.php

<?php
namespace app\lib\exception;use think\exception\Handle;
use think\exception\HttpException;
use think\exception\ValidateException;
use think\Response;
use Throwable;
use think\facade\Env;class ExceptionHandler extends Handle
{   public $code;public $msg;public $errorCode;public function render($request, Throwable $e): Response{if ($e instanceof BaseException) {$this->code = $e->code;$this->msg = $e->msg;$this->errorCode = $e->errorCode;}else{// debug开启,显示默认的异常if (Env::get('APP_DEBUG')) return parent::render($request, $e);//halt(Env::get('APP_DEBUG'));$this->code = 500;$this->msg = '服务器异常';$this->errorCode = '999';}$res = ['msg'=>$this->msg,'errorCode'=>$this->errorCode];return json($res,$this->code);}}

二、创建自定义异常类 app/lib/exception/ExceptionHandler.php

<?php
namespace app\lib\exception;use Exception;class BaseException extends Exception
{public $code = 400;public $msg = '异常';public $errorCode = 999;public function __construct($params = []){if (!is_array($params)) return;if (array_key_exists('code',$params))  $this->code = $params['code'];if (array_key_exists('msg',$params))  $this->msg = $params['msg'];if (array_key_exists('errorCode',$params))  $this->errorCode = $params['errorCode'];}
}

三、修改thinkphp6异常类使用自定义的异常类 app/provider.php

<?php
use app\ExceptionHandle;
use app\Request;// 容器Provider定义文件
return ['think\Request'          => Request::class,'think\exception\Handle' => ExceptionHandle::class,// 绑定自定义异常处理handle类'think\exception\Handle' => '\\app\\lib\\exception\\ExceptionHandler',
];

四、在控制器中使用抛出自定义异常类 app/index/controller/Index.php

<?php
namespace app\index\controller;
use app\lib\exception\BaseException;class Index
{public function index(){throw (new BaseException(['code'=>200,'errorCode'=>500,'msg'=>'自定义异常']));}
}

thinkphp6使用自定义异常类相关推荐

  1. java输入字符串异常_设计一个 Java 程序,自定义异常类,从命令行(键盘)输入一个字符串,如果该字符串值为“XYZ”。。。...

    设计一个 Java 程序,自定义异常类,从命令行(键盘)输入一个字符串,如果该字符串值为"XYZ",则抛出一个异常信息"This is a XYZ",如果从命令 ...

  2. 自定义异常类: 运行期间跟编译期间的区别

    1.自定义异常一: 继承RuntmeExcepyion,即运行期间异常;         由于我们自定义的是运行期间的异常,我们抛出异常,程序始终不作处理,程序编译的时候不会报错,但是运行的时候会报错 ...

  3. java+自定义异常类+输入若干成绩 为负数时输出抛出异常_java+自定义异常类+输入若干成绩 为...

    java+自定义异常类+输入若干成绩 为 [2021-02-10 19:00:54]  简介: java中定义类的关键字是:"class".在Java中定义一个类,需要使用&quo ...

  4. Java继承Exception自定义异常类教程以及Javaweb中用Filter拦截并处理异常

    Java继承Exception自定义异常类教程以及Javaweb中用Filter拦截并处理异常 参考文章: (1)Java继承Exception自定义异常类教程以及Javaweb中用Filter拦截并 ...

  5. 在你的代码中使用自定义异常类

    在你的代码中使用自定义异常类 参考文章: (1)在你的代码中使用自定义异常类 (2)https://www.cnblogs.com/evens-word/p/7991329.html 备忘一下.

  6. 如何编写和应用Java的自定义异常类

    11.7.1  编写自定义异常类的模式 编写自定义异常类实际上是继承一个API标准异常类,用新定义的异常处理信息覆盖原有信息的过程.常用的编写自定义异常类的模式如下: public class Cus ...

  7. 11.1自定义异常类

    自定义异常类 定义异常类的步骤:自定义一个类继承Exception即可. //自定一个没有IP的异常类 class NoIpException extends Exception {public No ...

  8. # 自定义异常类 问题: 请使用代码实现 每一个学生(Student)都有学号,姓名和分数,分数永远不能为负数 如果老师给学生赋值一个负数,抛出一个自定异常

    自定义异常类 问题: 请使用代码实现 每一个学生(Student)都有学号,姓名和分数,分数永远不能为负数 如果老师给学生赋值一个负数,抛出一个自定异常 public class NoScoreExc ...

  9. 第三次学JAVA再学不好就吃翔(part98)--自定义异常类

    学习笔记,仅供参考,有错必纠 自定义异常类 自定义异常需要继承Exception或者是RuntimeException,如果我们的自定义异常类继承了Exception,则在方法上需要进行声明,如果我们 ...

最新文章

  1. 【Android游戏开发十五】关于Android 游戏开发中 OnTouchEvent() 触屏事件的性能优化笔记! .
  2. ES5-11原型与原型链深入、对象继承
  3. http 安全性和幂等性_HTTP方法:幂等性和安全性
  4. MVC简单实现插件Demo-从底层理解MVC路由匹配浏览器请求的URL
  5. Mybatis的查询、关联查询
  6. linux 路由访问不了php文件,linux系统nginx服务器不能访问php文件问题
  7. mint-ui Infinite scroll 重复加载、加载无效的原因及解决方案
  8. iOS 很酷的动画效果
  9. 041——VUE中组件之pros数据的多种验证机制实例详解
  10. Debian下使用Doxygen生成定制样式的开发文档
  11. pyqt5 笔记(三)py2exe 实现代码打包exe
  12. python爬虫+谷歌翻译json字符串
  13. python离线录音转文字软件_语音转文字工具(音频转文字助手)V2.1 最新版
  14. 参加2009 ESRI年会的一点记录和感想
  15. Sixth season seventeenth episode,Ross‘s self defense concept,Unage!!!?????
  16. oracle 19c jdbc之Reactive Streams Ingestion (RSI) Library
  17. 腾讯云运维tca题库
  18. set和fronzenset的区别和方法
  19. sql server 2005安装内存不能读
  20. u盘打开提示格式化怎么办?有用的方法来了

热门文章

  1. android平板定制永久隐藏系统栏,Android平板掩藏系统状态栏
  2. 【XDOJ】五星级题目--构造表达式之思路分享
  3. Largest Square
  4. 狂神说ElasticSearch学习笔记
  5. 【总结】有三AI所有原创GAN相关的技术文章汇总(2022年8月)
  6. SQL Server复制表格或数据
  7. LearnOpenGL-高级OpenGL-9.几何着色器
  8. C程序设计课程主页 :12-13-2
  9. IT职场求生法则(2)- 基层员工及项目经理适用法则
  10. iphone 解锁_如何在解锁iPhone时自动解锁Apple Watch