局部变量可能尚未初始化-检测方法中未经检查的异常抛出

我有一些具有这种结构的代码:

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

回到顶部