我有一个变量,原因必须是final
。但是在尝试为其分配值时,可能会抛出Exception
,在这种情况下我需要它为0.所以我尝试了类似的东西。
private static final int x;
static {
try {
x = (1 / 0);
} catch (Exception e) {
x = 0; //error line
}
}
令人惊讶的是,它给了我一个编译时错误,
变量
x
可能已经被分配。
我无法理解这一点,x
只能在try
块或catch
块中分配,可能还有哪些值可以分配给x
?我该如何克服这个问题?
编辑: