thinkphp6使用自定义异常类
一、创建自定义异常类基类 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使用自定义异常类相关推荐
- java输入字符串异常_设计一个 Java 程序,自定义异常类,从命令行(键盘)输入一个字符串,如果该字符串值为“XYZ”。。。...
设计一个 Java 程序,自定义异常类,从命令行(键盘)输入一个字符串,如果该字符串值为"XYZ",则抛出一个异常信息"This is a XYZ",如果从命令 ...
- 自定义异常类: 运行期间跟编译期间的区别
1.自定义异常一: 继承RuntmeExcepyion,即运行期间异常; 由于我们自定义的是运行期间的异常,我们抛出异常,程序始终不作处理,程序编译的时候不会报错,但是运行的时候会报错 ...
- java+自定义异常类+输入若干成绩 为负数时输出抛出异常_java+自定义异常类+输入若干成绩 为...
java+自定义异常类+输入若干成绩 为 [2021-02-10 19:00:54] 简介: java中定义类的关键字是:"class".在Java中定义一个类,需要使用&quo ...
- Java继承Exception自定义异常类教程以及Javaweb中用Filter拦截并处理异常
Java继承Exception自定义异常类教程以及Javaweb中用Filter拦截并处理异常 参考文章: (1)Java继承Exception自定义异常类教程以及Javaweb中用Filter拦截并 ...
- 在你的代码中使用自定义异常类
在你的代码中使用自定义异常类 参考文章: (1)在你的代码中使用自定义异常类 (2)https://www.cnblogs.com/evens-word/p/7991329.html 备忘一下.
- 如何编写和应用Java的自定义异常类
11.7.1 编写自定义异常类的模式 编写自定义异常类实际上是继承一个API标准异常类,用新定义的异常处理信息覆盖原有信息的过程.常用的编写自定义异常类的模式如下: public class Cus ...
- 11.1自定义异常类
自定义异常类 定义异常类的步骤:自定义一个类继承Exception即可. //自定一个没有IP的异常类 class NoIpException extends Exception {public No ...
- # 自定义异常类 问题: 请使用代码实现 每一个学生(Student)都有学号,姓名和分数,分数永远不能为负数 如果老师给学生赋值一个负数,抛出一个自定异常
自定义异常类 问题: 请使用代码实现 每一个学生(Student)都有学号,姓名和分数,分数永远不能为负数 如果老师给学生赋值一个负数,抛出一个自定异常 public class NoScoreExc ...
- 第三次学JAVA再学不好就吃翔(part98)--自定义异常类
学习笔记,仅供参考,有错必纠 自定义异常类 自定义异常需要继承Exception或者是RuntimeException,如果我们的自定义异常类继承了Exception,则在方法上需要进行声明,如果我们 ...
最新文章
- 【Android游戏开发十五】关于Android 游戏开发中 OnTouchEvent() 触屏事件的性能优化笔记! .
- ES5-11原型与原型链深入、对象继承
- http 安全性和幂等性_HTTP方法:幂等性和安全性
- MVC简单实现插件Demo-从底层理解MVC路由匹配浏览器请求的URL
- Mybatis的查询、关联查询
- linux 路由访问不了php文件,linux系统nginx服务器不能访问php文件问题
- mint-ui Infinite scroll 重复加载、加载无效的原因及解决方案
- iOS 很酷的动画效果
- 041——VUE中组件之pros数据的多种验证机制实例详解
- Debian下使用Doxygen生成定制样式的开发文档
- pyqt5 笔记(三)py2exe 实现代码打包exe
- python爬虫+谷歌翻译json字符串
- python离线录音转文字软件_语音转文字工具(音频转文字助手)V2.1 最新版
- 参加2009 ESRI年会的一点记录和感想
- Sixth season seventeenth episode,Ross‘s self defense concept,Unage!!!?????
- oracle 19c jdbc之Reactive Streams Ingestion (RSI) Library
- 腾讯云运维tca题库
- set和fronzenset的区别和方法
- sql server 2005安装内存不能读
- u盘打开提示格式化怎么办?有用的方法来了