为什么我不能在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();
}
}