我有一个静态初始化块。它设置记录到文件。如果出现问题,我只想打破静态块。这可能吗?我知道我可以使用if / else方法,但使用简单的中断会使代码更具可读性。
答案 0 :(得分:5)
您的静态块可以调用方法
static { init(); }
private static void init() {
// do something
if(test) return;
// do something
}
答案 1 :(得分:3)
您可能希望捕获所有异常:
static {
try {
// Initialization
}
catch (Exception exception) {
// Not much can be done here
}
}
但要注意:加载类不会失败,但部分或全部静态字段可能处于不一致状态。
答案 2 :(得分:2)
这是你要找的吗?
label:
{
// blah blah
break label;
}
答案 3 :(得分:0)
try / catch怎么样?
try{}catch(){}
答案 4 :(得分:0)
如果是正常处理,请使用 if-then-else 或开关
最终你可以使用标签,但恕我直言,这是一个非常糟糕的风格:
//boolean condition;
static {
label:
{
System.out.println("1");
if(condition) break label;
System.out.println("2");
}
}
答案 5 :(得分:0)
在我看来,就流量控制策略而言,静态块与任何其他块没有区别。你可以在任何地方使用BREAK,如果你发现它更具可读性(在你的静态块中),但一般的假设是它使代码实际上不易读,并且IF ELSE方法更好。