public function beforeAction($action)
{
return parent::beforeAction($action);
} public function runAction($id, $params = [])
{
try {
return parent::runAction($id, $params);
} catch (MyException $myException) {
//此处返回业务错误 比如返回json字符串错误
$result = [
'status' => $myException->getCode(),
'message' => $myException->getMessage(),
'data' => null
];
return json_encode($result, true); } catch (\Exception $ex) {
throw $ex;
}
} public function afterAction($action, $result)
{
return parent::afterAction($action, $result);
}

异常类(只需要继承基础的异常类即可)

<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2018/12/8 0008
* Time: 14:38
*/ namespace app\librarys; class MyException extends \Exception
{ }

可以在任意地方使用,不需要再写返回值,自动返回。

throw new MyException('错误信息');

PHP (Yii2) 自定义业务异常类(可支持返回任意自己想要的类型数据)的更多相关文章

  1. BaseRuntimeException自定义业务异常类实现

    public class BaseRuntimeException extends RuntimeException { private final int code; public BaseRunt ...

  2. java异常,异常处理,异常类 关键字:throws 和 throw 自定义的异常类

    package cn.kecheng; import java.util.Scanner; /**异常:异常是指在程序的运行过程中所发生的不正常的情况,它会中断正在运行的程序 异常处理机制:java中 ...

  3. java中自定义一个异常类 在某些情况抛出自定的异常 ----------阻断程序

    //=============定义异常类 package org.springblade.flow.engine.errorException; /** * 自定义异常处理写入sap失败 */ pub ...

  4. Python自定义一个数组类,支持数组之间的四则运算和其他常见方法

    class MyArray: '''保证输入的内容是整型.浮点型''' def ___isNumber(self, num): if not isinstance(num, (int,float)): ...

  5. 【转】【C#】异常类 Exception 枚举所有类型的异常

    一.基础 在C# 里,异常处理就是C# 为处理错误情况提供的一种机制.它为每种错误情况提供了定制的处理方式,并且把标识错误的代码与处理错误的代码分离开来. 对.NET类来说,一般的 异常类System ...

  6. C#编程(八十)---------- 异常类

    异常类 在C#里,异常处理就是C#为处理错误情况提供的一种机制.它为每种错误情况提供了定制的处理方式,并且把标志错误的代码预处理错误的代码分离开来. 对.net类来说,一般的异常类System.Exc ...

  7. java异常类

    package shb.java.exception; /** * 测试异常类 * @Package:shb.java.exception * @Description: * @author shao ...

  8. 基于数组实现Java 自定义Stack栈类及应用

    栈是存放对象的一种特殊容器,在插入与删除对象时,这种结构遵循后进先出( Last-in-first-out,LIFO)的原则.java本身是有自带Stack类包,为了达到学习目的已经更好深入了解sta ...

  9. Java异常类及处理

    异常概述:运行时发生的不正常情况 在java中用类的形式对不正常的情况进行了描述和封装对象. 描述不正常的类,称之为异常类. 异常就是java通过面向对象的思想将问题封装成了对象,用异常类对其进行描述 ...

随机推荐

  1. 《ArcGIS Runtime SDK for Android开发笔记》——数据制作篇:紧凑型切片制作(Server缓存切片)

    1.前言 在ArcGIS 10中出现了一种新的切片缓存文件格式:紧凑型存储(Compact).与之前的松散型存储(Exploded)相比,它有迁移方便.创建更快.减少存储空间等诸多优点,已经成为了现在 ...

  2. Jmeter(一)http接口添加header和cookie --转载

    Jmeter(一)http接口添加header和cookie   HTTP信息头管理器在Jmeter的使用过程中起着很重要的作用,通常我们在通过Jmeter向服务器发送http请求(get或者post ...

  3. Oracle VM virtualBox -Centos6.4 安装后没有网解决方法

    1.先修改Oracle VM virtualBox 的网络配置 2.然后启动centos输入:  dhclient eth0 3.然后如果没报错的话  输入: ifconfig  就可以查看到ip地址 ...

  4. OLAP和数据挖掘的区别

    总结来说: 数据仓库提供了一个分析的数据源 数据挖掘能分析出未知的信息,提出假设 OLAP能通过分析,验证假设 从技术角度看,商务智能的过程是企业的决策人员以企业中的数据仓库为基础,经由数据挖掘工具. ...

  5. Struts的学习-eclipse与idea与struts的连接

    1.建立一个空白工程(里面是没有文件的). 可以在文件放置找到项目文件夹 2.点击托管项目到码云 (ps:没有码云帐号的自己注册) 3.按快捷键:ctrl+alt+shift+s 呼出项目结构管理器, ...

  6. @Modules( ... ) 多个包路径问题

    如何支持多个包路径,modules不在同一个报名下 @Modules(scanPackage = true, packages = "cn.wizzer.modules, com.xxx.m ...

  7. BZOJ1033:[ZJOI2008]杀蚂蚁antbuster(模拟)

    Description 最近,佳佳迷上了一款好玩的小游戏:antbuster.游戏规则非常简单:在一张地图上,左上角是蚂蚁窝,右 下角是蛋糕,蚂蚁会源源不断地从窝里爬出来,试图把蛋糕搬回蚂蚁窝.而你的 ...

  8. TSP 模拟退火

    TSP——模拟退火解法 都知道TSP是经典的NP问题,从一个点开始遍历所有点,不重复,求最短路径. 可以用枚举终点,跑流量为2的最小费用,图论来做,时间复杂度为 ​ 费用流已经用到堆优化了.显然点,边 ...

  9. 2018.10.17 学习如何使用Shiro

    参考学习https://www.javazhiyin.com/19502.html

  10. mysql-delete 和 truncate的区别

    ​ delete from student where id = 3; -- delete partly delete from student; -- delete all truncate stu ...