我遇到这样一个问题,我想声明一个带有初始化语句的static final
字段,并且该初始化语句会声明抛出已检查异常。通常情况下,它看起来像这样:
public static final ObjectName OBJECT_NAME = new ObjectName("foo:type=bar");
我的问题在于ObjectName
构造函数可能会抛出各种已检查的异常,而我不关心它们(因为我知道我的名称是有效的,如果它不是有效的话,它彻底崩溃也没关系)。Java编译器不允许我忽略这个异常(因为它是一个已检查的异常),我不想使用以下方式:
public static final ObjectName OBJECT_NAME;
static {
try {
OBJECT_NAME = new ObjectName("foo:type=bar");
} catch (final Exception ex) {
throw new RuntimeException("Failed to create ObjectName instance in static block.", ex);
}
}
因为静态代码块真的非常难以阅读。有人有关于如何以一种好的、清晰的方式处理这种情况的建议吗?
CheckedExceptionsAreAPainInTheAssSometimesException
的运行时异常。程序将会崩溃。 - Bassinator