打破Java中的静态初始化块

use*_*041 5 java static

我有一个静态初始化块.它设置记录到文件.如果出现问题,我只想打破静态块.这可能吗?我知道我可以使用if/else方法,但使用简单的中断会使代码更具可读性.

Pet*_*rey 5

您的静态块可以调用方法

static { init(); }

private static void init() {
     // do something
     if(test) return;
     // do something
}
Run Code Online (Sandbox Code Playgroud)


Lau*_*eyn 4

您可能想捕获所有异常:

static {
    try {
        // Initialization
    }
    catch (Exception exception) {
        // Not much can be done here
    }
}
Run Code Online (Sandbox Code Playgroud)

但要注意:加载类不会失败,但部分或所有静态字段可能处于不一致的状态。