我是Java场景的新手,但目前正在进行指定的评估 . 我想知道是否有办法在类函数中捕获异常并抛出另一个异常,因此调用类函数的函数不需要知道抛出的第一个异常 .
例如
public void foo() throws MasterException {
try {
int a = bar();
} catch (MasterException e) {
//do stuff
}
}
public void bar() throws MasterException, MinorException {
try {
int a = 1;
} catch (MinorException e) {
throw new MasterException();
}
}
我希望这个例子能够解释我想要实现的目标 . 基本上我希望调用函数不要知道 MinorException
.
5 回答
绝对 . 你想改变这一行:
对此:
其他所有东西都应该与你如何写它完全一致 .
我会从foo()中删除MasterException,因为你正在捕获它,而其他答案说,来自bar()的MinorException .
此外,如果MasterException或MinorException是RuntimeException的子类,则无需声明它 . 参见例如http://docs.oracle.com/javase/tutorial/essential/exceptions/runtime.html
只需从bar()的throws子句中删除MinorException .
从方法
foo()
的声明中删除throws MasterException
,原因很清楚,MasterException已经准备好了,所以无论如何都不会发生 .从方法
bar()
的声明中删除, MinorException
.从
bar
的声明中删除, MinorException
,你就完成了 . 我也会这样做:如果
MasterException
有一个支持它的构造函数(它的标准,Exception
类) .