我有一个最终的成员数据:
public final Foo foo;
在构造函数中,foo
初始化如下:
foo = new Foo();
现在,不幸的是,Foo 的构造函数可能会抛出异常:
try {
foo = new Foo();
} catch (Exception e) {
e.printStackTrace();
}
但是现在编译器抱怨 foo 可能没有被初始化,如果 Foo 的构造函数抛出异常,这是真的。但是,如果我放入foo = null
catch 大括号内,它会抱怨 foo 可能已被初始化。
Foo 是我无法修改的第三方库。
那么,最优雅的处理方式是什么?