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);
}
}
}

看一下。

。。

异常信息

最新文章

  1. CSS外边距margin上下元素重叠
  2. 今个忽然晓得,原来radio不是普通去获取值的!
  3. 值得使用的Spring Boot
  4. paper 101:图像融合算法及视觉艺术应用
  5. 《学习OpenCV》练习题第五章第二题abc
  6. Android开发优化宝典
  7. PHP学习心得(二)——实用脚本
  8. 七周七语言——Prolog(二)
  9. 对比git pull和git pull --rebase
  10. C语言常见错误中英文对照表
  11. 【Python3的函数初识】
  12. Python 正则表达式 (python网络爬虫)
  13. IntelliJ IDEA 自定义方法注解模板
  14. CentOS 7修改系统时间及硬件时间
  15. 数据库和Django model 生成和反向生成
  16. Codeforces1062D. Fun with Integers(埃氏筛)
  17. KDD Cup 99网络入侵检测数据的分析
  18. linux_制作本地yum源
  19. WebClient 通过get和post请求api
  20. Android开发点滴 - 如何使按钮水平垂直居中且始终占据屏幕宽度一半

热门文章

  1. js中迭代的常用几种方法
  2. 【Docker端口映射】
  3. Python学习第一篇
  4. 【Codeforces Round #460 (Div. 2) B】 Perfect Number
  5. 转战Androidstudio之项目eclipse迁移
  6. SQL Server performance for alter table alter column change data type
  7. 浏览器加载跟渲染html的顺序-css渲染效率的探究
  8. (JavaScript基础向)日常小发现:forEach等函数的第二个参数的用法
  9. JAVA使用YUI压缩CSS/JS
  10. centos的dns配置总结