为了账号安全,请及时绑定邮箱和手机立即绑定

有几个问题需要帮助。

1、怎样理解“包装成运行时异常”?原始异常是哪类就是哪类,为什么要包装成运行时异常呢?
2、catch(Exception e)为什么总是e?e是形参吗,那么它的实参在哪里?
3、catch子句里的RuntimeException newExc=new RuntimeException();此处的RuntimeException类是程序默认继承吗?还是默认导入?
4、newExc.initCause(e);此方法翻译成汉语叫什么?有什么功能?
谢谢~


正在回答

3 回答

第二个问题问的好!同求!

对于以上四个问题我的理解是这样的:

1、包装的异常类应该是Exception的子类,至于使用RuntimeException类应该是举个例子,使用现有的子类的方法比较方便。

2、Exception e的实例化个人感觉应该是由虚拟机实现的

3、RuntimeException类是Exception类的子类,都在java.lang包中,java编译器自动加载了java.lang包的内容

4、这个可以查查api

2 回复 有任何疑惑可以回复我~
#1

_Jack_Han_ 提问者

非常感谢!
2016-02-09 回复 有任何疑惑可以回复我~

2,

e代表一个Exception对象
此对象通过try..catch扑获
楼主可以想象Exception e = new Exception();

0 回复 有任何疑惑可以回复我~
#1

_Jack_Han_ 提问者

谢谢。
2016-04-07 回复 有任何疑惑可以回复我~

2.e是形参,实参就是try中捕获到的异常,确切来讲,是test1()方法中抛出的某种异常类的对象,比如说,从throw new Exception()    就可以看出实际上是创建了一个Exception类的实例,然后再将实例抛出。因为Exception只是一个模板,但是我们会碰到各种各样的Exception类的异常,引起异常的原因不同,他们的内容描述也不同,这样可以理解为什么抛出的是类的对象。

4.initCause应该是initial cause的缩写吧,大概就是“起因”的意思,initial 最初的,cause 原因。

作用:将传入的对象设置为“原因”。如果这个对象已经被设置为“原因”,则抛出异常。

如果把这一条语句删除,你会发现,test1()中的异常是不会被显示在控制台中。

2 回复 有任何疑惑可以回复我~
#1

_Jack_Han_ 提问者

非常感谢!
2016-02-21 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

有几个问题需要帮助。

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信