局部变量可能尚未初始化-检测方法中未经检查的异常抛出
我有一些具有这种结构的代码:
public void method() { Object o;
try {
o = new Object();
} catch (Exception e) {
//Processing, several lines
throw new Error(); //Our own unchecked exception
}
doSomething(o);
}
我有很多方法在catch块中具有相同的代码,因此我想将其提取到一种方法中,以便节省一些行。我的问题是,如果这样做,则会收到编译器错误“本地变量o可能尚未初始化”。
public void method() { Object o;
try {
o = new Object();
} catch (Exception e) {
handleError();
}
//doSomething(o); compiler error
}
private void handleError() throws Error {
//Processing, several lines
throw new Error();
}
有什么解决方法吗?
回答:
您需要先初始化局部变量,然后才能按如下方式使用它们
public void method() { Object o=null;
try {
o = new Object();
} catch (Exception e) {
handleError();
}
doSomething(o);
}
除非使用未初始化的局部变量,否则编译失败
以上是 局部变量可能尚未初始化-检测方法中未经检查的异常抛出 的全部内容, 来源链接: utcz.com/qa/400626.html