为什么我不能在try
块内分配对象变量?
如果我尝试这样做并清理finally
块中的变量,我会收到编译器错误:“使用未分配的局部变量”。这是没有意义的,因为变量是在try
块之前声明的,并且在finally
块中我首先检查变量是否为null
.
为什么下面的代码不能编译?我正在检查是否dbc
它null
没有机会尝试对未分配的变量做某事。
例如:
DbConnection dbc;
try {
dbc = <some method call returning an open DbConnection>
// do stuff
} catch (Exception e) { // do stuff }
finally {
if (dbc != null) {
dbc.Close();
}
}