我从来不明白这一点,但为什么 Java 允许你从构造函数中抛出一个检查异常?
public class PerformanceLogger{
public PerformanceLogger() throws Exception{
//do stuff
}
}
拥有这样的代码的后果是您无法在类字段级别实例化实例。
class MyClass {
PerformanceLogger p = new PerformanceLogger(); //compile error
}
唯一有效的是从方法中调用构造函数。那么为什么要打扰呢?如果 Java 不允许在编译时从构造函数中抛出已检查的异常,这不是更干净吗?