【JAVASE】Java同一时候抛出多个异常
Java有异常抛出后。跳出程序。一般无法运行接下来的代码。
大家做登陆功能。常常会实username和password的登陆校验,username或者password错误。假设通常是提示username或者password错误,由于一般无法同一时候抛出两个异常信息。我们怎样来做到同一时候抛出多个异常呢? 能够把多个异常信息放到list中,然后一起抛出就可以。
我们接下来定义自己的异常类。
import java.util.ArrayList;
import java.util.List; /**
* 自己定义异常类
*
* @author gm
*/
public class MyException extends Exception { /**
* 序列化ID
*/
private static final long serialVersionUID = 1L;
/**
* 用于报错多个异常
*/
private List<Throwable> causes = new ArrayList<Throwable>(); /**
* 构造函数加入全部异常
*
* @param _causes
*/
public MyException(List<? extends Throwable> _causes) {
causes.addAll(_causes);
} /**
* 获取全部Exceptions
*
* @return List<Throwable>
*/
public List<Throwable> getException() {
return causes;
}
}
------------------------------------------------------------------------
异常类定义好后。同一时候抛出两个异常。
import java.util.ArrayList;
import java.util.List; public class ExcepitonTest { public static void main(String[] args) throws MyException {
try {
doException();
} catch (MyException e) {
e.printStackTrace();
throw new MyException(e.getException());
}
} public static void doException() throws MyException {
List<Throwable> list = new ArrayList<Throwable>();
int num1 = 1;
int num2 = 0;
int result = 0; try {
result = num1 / num2;
} catch (Exception e) {
list.add(e);
System.out.println("第一个异常");
} try {
result = num1 / num2;
} catch (Exception e) {
list.add(e);
System.out.println("第二个异常");
} if (list.size() > 0) {
throw new MyException(list);
}
}
}
看一下。
。。
。
异常信息
【JAVASE】Java同一时候抛出多个异常的更多相关文章
- java使用json抛出org.apache.commons.lang.exception.NestableRuntimeException解决方案
出现这个问题,说明缺少jar包,将下面的jar引入即可 commons-beanutils-1.8.3 commons-lang-2.6 (注:导入最新的 3.1 版本会继续报如下错误) common ...
- @Required 注释应用于 bean 属性的 setter 方法,它表明受影响的 bean 属性在配置时必须放在 XML 配置文件中,否则容器就会抛出一个 BeanInitializationException 异常。
@Required 注释应用于 bean 属性的 setter 方法,它表明受影响的 bean 属性在配置时必须放在 XML 配置文件中,否则容器就会抛出一个 BeanInitializationEx ...
- shiro配置unauthorizedUrl,无权限抛出无权限异常,但是不跳转
在使用shiro配置无授权信息的url的时候,发现这样的一个scenario,配置好unauthorizedUrl后仍然无法跳转,然后就在网上开始找,找了原因以及解决方案 原因,先post一个源码: ...
- c# throw抛出上一个异常
catch(exception e) { throw; } 不仅抛出这次的异常,也抛出之前的异常. 用法示例:函数A调用函数B,A用到此throw时,B中发生的异常也会继承过来. catch(exce ...
- JAVA 抛出与声明异常
在编程过程中,我们往往会遇到这种情况,在当前环境中无法解决,比如用户传入的参数错误,IO设备问题等.此时,就要从当前环境中抛出异常提交给上级来处理. 在JAVA语言中,使用throw关键字来抛出异常. ...
- java 異常抛出 throw 與 return
package 異常; public class TestException { public TestException() { } boolean test ...
- [Go] 如何正确地 抛出 错误 和 异常(error/panic/recover)?
序言 错误 和 异常 是两个不同的概念,非常容易混淆.很多程序员习惯将一切非正常情况都看做错误,而不区分错误和异常,即使程序中可能有异常抛出,也将异常及时捕获并转换成错误.从表面上看,一切皆错误的思路 ...
- C++学习40 抛出自己的异常
throw 是C++中的关键字,用来抛出异常.如果不使用 throw 关键字,try 就什么也捕获不到:上节提到的 at() 函数在内部也使用了 throw 关键字来抛出异常. throw 既可以用在 ...
- servlet 和filter 抛出404等异常
1. servlet抛出错误代码异常,如404 public void doGet(HttpServletRequest request, HttpServletResponse response) ...
随机推荐
- R学习:《R语言数据分析与挖掘实战》PDF代码
分三个部分:基础篇.实战篇.提高篇.基础篇介绍了数据挖掘的基本原理,实战篇介绍了一个个真实案例,通过对案例深入浅出的剖析,使读者在不知不觉中通过案例实践获得数据挖掘项目经验,同时快速领悟看似难懂的数据 ...
- b模式处理文件
1.读 f=open('cheng','rb') date=f.read() print(date.decode()) 2.写 f=open('cheng','ab') f.write('chengz ...
- ttf字体转换成web中使用的woff、svg、eot格式字体
网站地址:http://www.fontsquirrel.com/tools/webfont-generator(还可以缩小字体文件大小,强烈推荐) ttf转换成eot格式的字体软件:EOTFAST. ...
- Annotation中Result的params属性
这个属性只有在重定向时有用,而转发时不会设置参数. 如: @Results({ @Result(name="success", location="page", ...
- LeetCode 223 Rectangle Area(矩形面积)
翻译 找到在二维平面中两个相交矩形的总面积. 每一个矩形都定义了其左下角和右上角的坐标. (矩形例如以下图) 如果,总占地面积永远不会超过int的最大值. 原文 分析 这题前天试过,写了一堆推断.终究 ...
- int long long 的取值范围
unsigned int 0-4294967295 //整型的每一种都有无符号(unsigned)和有符号(signed)两种类型(float和double总是带符号的),在默认情况下声明 ...
- hdu5305 Friends(dfs+map/hash)
题目:pid=5305">http://acm.hdu.edu.cn/showproblem.php?pid=5305 题意:给定N个人和M条朋友关系,是朋友关系的两个人之间有两种联系 ...
- 修正EasyUI的BUG——Form中存在FileBox时的数据载入错误
使用EasyUI载入服务端返回的数据时经常使用 $('#fm').form('load', row); 实现,既方便又简洁,可是.当Form中包括有FileBox时,代码就会报错,经过跟踪发现.由于E ...
- 第一天,Mysql安装,DDL(数据库定义语言),DBA,DML(数据库操纵语言),导入外面的sql文件
把“D:\mysql-5.6.22-winx64\bin”添加到系统环境变量path中了,然后在任意目录可访问mysql等命令,这样如登录等操作就不需要进入MySQL安装目录才好执行! MySQL下载 ...
- POJ 2185 正解 KMP
题意: 思路: 把每一行压成一个数 求一下 KMP 把每一列压成一个数 求一下KMP 答案就是两个周期之积 网上的好多题解都是错的---------.. //By SiriusRen #include ...