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同一时候抛出多个异常的更多相关文章

  1. java使用json抛出org.apache.commons.lang.exception.NestableRuntimeException解决方案

    出现这个问题,说明缺少jar包,将下面的jar引入即可 commons-beanutils-1.8.3 commons-lang-2.6 (注:导入最新的 3.1 版本会继续报如下错误) common ...

  2. @Required 注释应用于 bean 属性的 setter 方法,它表明受影响的 bean 属性在配置时必须放在 XML 配置文件中,否则容器就会抛出一个 BeanInitializationException 异常。

    @Required 注释应用于 bean 属性的 setter 方法,它表明受影响的 bean 属性在配置时必须放在 XML 配置文件中,否则容器就会抛出一个 BeanInitializationEx ...

  3. shiro配置unauthorizedUrl,无权限抛出无权限异常,但是不跳转

    在使用shiro配置无授权信息的url的时候,发现这样的一个scenario,配置好unauthorizedUrl后仍然无法跳转,然后就在网上开始找,找了原因以及解决方案 原因,先post一个源码: ...

  4. c# throw抛出上一个异常

    catch(exception e) { throw; } 不仅抛出这次的异常,也抛出之前的异常. 用法示例:函数A调用函数B,A用到此throw时,B中发生的异常也会继承过来. catch(exce ...

  5. JAVA 抛出与声明异常

    在编程过程中,我们往往会遇到这种情况,在当前环境中无法解决,比如用户传入的参数错误,IO设备问题等.此时,就要从当前环境中抛出异常提交给上级来处理. 在JAVA语言中,使用throw关键字来抛出异常. ...

  6. java 異常抛出 throw 與 return

    package 異常;    public class TestException {      public TestException() {      }        boolean test ...

  7. [Go] 如何正确地 抛出 错误 和 异常(error/panic/recover)?

    序言 错误 和 异常 是两个不同的概念,非常容易混淆.很多程序员习惯将一切非正常情况都看做错误,而不区分错误和异常,即使程序中可能有异常抛出,也将异常及时捕获并转换成错误.从表面上看,一切皆错误的思路 ...

  8. C++学习40 抛出自己的异常

    throw 是C++中的关键字,用来抛出异常.如果不使用 throw 关键字,try 就什么也捕获不到:上节提到的 at() 函数在内部也使用了 throw 关键字来抛出异常. throw 既可以用在 ...

  9. servlet 和filter 抛出404等异常

    1. servlet抛出错误代码异常,如404 public void doGet(HttpServletRequest request, HttpServletResponse response) ...

随机推荐

  1. 【Uva 10285】Longest Run on a Snowboard

    [Link]: [Description] 在一个r*c的格子上; 求最长的下降路径; [Solution] 记忆化搜索; f[x][y]表示从(x,y)这个格子往下还能走多远; 因为是严格递增,所以 ...

  2. 读MBA经历回想(下)做法决定结果——北漂18年(49)

    上期聊了目的决定了手段,这次说说详细做法决定了最后的结果. 差额面试被淘汰的高分学员 2005年,是北京邮电大学工商管理学入学考试第一个差额淘汰的年份.意思是过分数线(165分)的人数超过了录取人数, ...

  3. jquery17 DOM操作 : 添加 删除 获取 包装 DOM筛选

    <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...

  4. 网页中插入javascript的几种方法

    网页中插入javascript的方法常见的有两种: 一.直接使用html标记 JavaScript 可以出现在 html的任意地方.使用标记<script>…</script> ...

  5. flume中sink到hdfs,文件系统频繁产生文件和出现乱码,文件滚动配置不起作用?

    问题描述  解决办法 先把这个hdfs目录下的数据删除.并修改配置文件flume-conf.properties,重新采集. # Licensed to the Apache Software Fou ...

  6. JQ 实施编辑 (clone()复制行||双击编辑)

    //代码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <titl ...

  7. 在Vue单页面应用中使用Promise链式调用

    eg: this.commonLoginFun().then((res) => { if (res.errNo === 0) { const { isLogin } = res.data; if ...

  8. netty实现TCP长连接

    所用jar包 netty-all-4.1.30.Final.jar 密码:rzwe NettyConfig.java,存放连接的客户端 import io.netty.channel.group.Ch ...

  9. hive load文件第一个字段为NULL

    在hive中,通常须要载入外部数据源.load文件时.第一个字段会出现NULL. 比如: 1.运行load语句: LOAD DATA LOCAL INPATH 'test.txt' OVERWRITE ...

  10. [Angular & Unit Testing] Testing a RouterOutlet component

    The way to test router componet needs a little bit setup, first we need to create a "router-stu ...