我有一个静态初始化块。它设置了将日志记录到文件的功能。如果出现问题,我只想跳出静态块。这是否可行?我知道可以使用if / else方法,但使用简单的break语句会使代码更易读。
static { init(); }
private static void init() {
// do something
if(test) return;
// do something
}
您可能希望捕获所有异常:
static {
try {
// Initialization
}
catch (Exception exception) {
// Not much can be done here
}
}
但要注意:加载类不会失败,但某些或所有静态字段可能处于不一致的状态。
这是您正在寻找的内容吗?
label:
{
// blah blah
break label;
}
break
与标签嵌套层数超过一级时,它才有用。否则,它只是不好的编码风格,因为可以以更可读的方式避免使用它。 - Laurent Pireyn如果是正常处理,请使用 if-then-else 或 switch,
最终您可以使用标签,但在我看来这是一种非常糟糕的风格:
//boolean condition;
static {
label:
{
System.out.println("1");
if(condition) break label;
System.out.println("2");
}
}
尝试使用try/catch怎么样?
try{}catch(){}
static final
变量都应该被初始化,无论如何... - Clockwork-Muse