我正在Eclipse中使用以下代码:
public class Foo {
public static final Bar bar = new Bar(20);
}
public class Bar {
public int value;
// This needs to be able to be called in places other than
// just Foo, and there it will need to throw.
public Bar(int value) throws Exception {
if(value == 0) {
throw Exception("Error. Value cannot be 0 when constructing Bar.");
}
return;
}
}
这在Foo(第2行)中给我一条错误消息,内容为“未处理的异常类型Exception”,即使在实践中,此代码也永远不会发生此异常。我可以在Eclipse中禁用此错误,以便它不会打扰我,还是我可以通过其他方法来处理此错误?
提前感谢您的回答!
答案 0 :(得分:1)
这是一个编译器错误,需要修复该错误才能编译Java代码,而不是Eclipse问题:已检查的异常要求通过包围Java来对其进行显式处理与 try
-catch
或传递异常(方法/构造方法 throws
...)。
如果无法更改类Bar
,则一种可能性是使用私有静态方法初始化常量 bar
(应命名为{{1} }(根据Java命名约定):
BAR
答案 1 :(得分:0)
使用try / catch包围构造函数以捕获异常。
像这样:
public class Foo {
try {
public static final Bar = new Bar(20);
}catch(InvalidCharacterException e) {
e.PrintStackTrace();
}
应该解决您的问题。如果没有,请随时回复,我会尽力帮助您。