1、怎样理解“包装成运行时异常”?原始异常是哪类就是哪类,为什么要包装成运行时异常呢? 2、catch(Exception e)为什么总是e?e是形参吗,那么它的实参在哪里? 3、catch子句里的RuntimeException newExc=new RuntimeException();此处的RuntimeException类是程序默认继承吗?还是默认导入? 4、newExc.initCause(e);此方法翻译成汉语叫什么?有什么功能? 谢谢~
第二个问题问的好!同求!
对于以上四个问题我的理解是这样的:
1、包装的异常类应该是Exception的子类,至于使用RuntimeException类应该是举个例子,使用现有的子类的方法比较方便。
2、Exception e的实例化个人感觉应该是由虚拟机实现的
3、RuntimeException类是Exception类的子类,都在java.lang包中,java编译器自动加载了java.lang包的内容
4、这个可以查查api
2,
e代表一个Exception对象
此对象通过try..catch扑获
楼主可以想象Exception e = new Exception();
2.e是形参,实参就是try中捕获到的异常,确切来讲,是test1()方法中抛出的某种异常类的对象,比如说,从throw new Exception() 就可以看出实际上是创建了一个Exception类的实例,然后再将实例抛出。因为Exception只是一个模板,但是我们会碰到各种各样的Exception类的异常,引起异常的原因不同,他们的内容描述也不同,这样可以理解为什么抛出的是类的对象。
4.initCause应该是initial cause的缩写吧,大概就是“起因”的意思,initial 最初的,cause 原因。
作用:将传入的对象设置为“原因”。如果这个对象已经被设置为“原因”,则抛出异常。
如果把这一条语句删除,你会发现,test1()中的异常是不会被显示在控制台中。