java中的异常链

把捕获的异常包装成一个新的异常,在新的异常中添加对新的异常的引用,再把新异常抛出,就像是链式反应一样,这种就叫异常链。

代码实例:

public static void main(String[] args){

ChainTest ct=new ChainTest();//创建chainTest实例

try{

ct.test2();

}catch(Exception e){

e.printStackTrace();

}

}

public void test1()throws DrunkException{

throw new DrunkException("喝车别开酒");

}

public void test2(){

try{

test1();

}catch (DrunkException e){

RuntimeException newExc=new RuntimeException("司机一滴酒亲人两行泪");//含参构造器

newExc.initCause(e);//调用newExc的init方法,把捕获的DrunkException传进去

throw newExc;//抛出新异常

}

}

时间: 2024-10-28 22:13:05

java中的异常链的相关文章

java 第50节 Java中的异常链

2016-06-30 1 异常链 两个或多个不同的异常出现在同一个程序中,并且会发生嵌套抛出,我们称之为异常链. package com.java1995; /** * 异常链 * @author Administrator * */ public class ExceptionChainTest { public static void main(String[] args) { Calculator c=new Calculator(); try{ c.chufa(1, 0); }catch

Java中的异常和处理详解

原文出处:代码钢琴家 简介 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常.异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户?或者用C语言风格:用函数返回值作为执行状态?. Java提供了更加优秀的解决办法:异常处理机制. 异常处理机制能让程序在异常发生时,按照代码的预先设定的异常处理逻辑,针对性地处理异常,让程序尽最大可能恢复正常并继续执行,且保持代码的清晰. Java中的异常可以是函数中的语句执行时引发的,也可以是程序员通过throw 语句手

java中关于异常的处理

初学java的时候,当我们碰到异常时,一般会把异常直接throws抛出去,或则在catch的时候,简单的写一句打印异常信息,但是在实际开发中,是不能这么做的.如果我们将底层的某一个异常简单的print出去,那么这个异常的捕获是没有起到任何作用,反而给编译器一个"异常已处理"的假象,导致有异常的程序会继续往下执行,这是不允许的:如果我们直接将异常抛出去,抛给上一层,也是徒劳的,反而给上一层带来麻烦. 为了避免这样的情况发生,我们一般会将异常进行转换,将编译时异常转变成运行时异常,再thr

Java 中的异常和处理详解

原文出处: 代码钢琴家 简介 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常.异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户?或者用C语言风格:用函数返回值作为执行状态?. Java提供了更加优秀的解决办法:异常处理机制. 异常处理机制能让程序在异常发生时,按照代码的预先设定的异常处理逻辑,针对性地处理异常,让程序尽最大可能恢复正常并继续执行,且保持代码的清晰. Java中的异常可以是函数中的语句执行时引发的,也可以是程序员通过throw 语句

夯实Java基础系列10:深入理解Java中的异常体系

目录 为什么要使用异常 异常基本定义 异常体系 初识异常 异常和错误 异常的处理方式 "不负责任"的throws 纠结的finally throw : JRE也使用的关键字 异常调用链 自定义异常 异常的注意事项 当finally遇上return JAVA异常常见面试题 参考文章 微信公众号 Java技术江湖 个人公众号:黄小斜 - Java异常 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.c

JAVA中的异常(异常处理流程、异常处理的缺陷)

异常处理流程 1)首先由try{...}catch(Exception e){ System.out.println(e); e.printStackTrace(); }finally{...}结构 2)当JVM遇到异常时,会产生一个Exception对象 或 继承自Exception的子类的对象. 3)将异常对象向上层(调用它的代码块)抛出,知道碰到一个catch块(作相应处理) 或 一直抛到了最外层(导致程序异常终止).(并停止异常之后的代码的执行,但是finally块中的代码还会执行!换句

完成这个例子,说出java中针对异常的处理机制。

有一个类为ClassA,有一个类为ClassB,在ClassB中有一个方法b,此方法抛出异常,在ClassA类中有一个方法a,请在这个方法中调用b,然后抛出异常.在客户端有一个类为TestC,有一个方法为c ,请在这个方法中捕捉异常的信息.完成这个例子,请说出java中针对异常的处理机制. [java] view plaincopy package com.itheima; import java.io.IOException; /** *第6题:有一个类为ClassA,有一个类为ClassB,

Java中的异常-Throwable-Error-Exception-RuntimeExcetpion-throw-throws-try catch

今天在做一个将String转换为Integer的功能时,发现Integer.parseInte()会抛出异常NumberFormatException. 函数Integer.parseInt(String)定义 1 public static int parseInt(String s) 2 throws NumberFormatException 测试代码: 1 public class Test 2 { 3 public static void main(String[] args) 4 {

java中的“异常”

异常:Java运行期间发生的问题就是异常,另外,Java中运行时发生的除了异常Exception还有错误Error. 异常:可以有针对性的处理方式:错误:通常发生后不会有针对性的处理方式,往往是系统级别的问题,无法针对处理,只能修正代码. 举个例子:对给定的数组同过给定的交表获取元素, class Demo { /* 对给定的数组通过给定的角标获取元素. */ int getElement(int[] arr,int index) { /* 它所提供的信息不够给力.想要更清晰,需要自己写. 它的