gpt4 book ai didi

java - 从主类中的静态字段捕获异常

转载 作者:搜寻专家 更新时间:2023-11-01 02:43:56 34 4
gpt4 key购买 nike

我以前从来没有真正想过这个问题,但是看下面的代码

public class SomeJavaProgram {

private static String runMe() {
throw new RuntimeException("hi tadsfasdf");
}
private static String name = runMe();

public static void main(String[] args) {
System.out.println("hi there.");
}
}

我以前从来没有在 main 中做过这样的静态,但后来我进入了 scala,如果你有开始添加 defs 的子类,甚至可以在调用 main 之前抛出异常。

那么,在 java(不是 scala)中,有没有办法捕获这些异常(如果我是父类(super class),子类最终有一个静态字段抛出异常或静态初始化程序 block )......我怎么能捕获所有这些?

我当然依赖一个单一的定义而不是抛出

private Logger log = createLoggerFromSomeLoggingLib();

但在那之后,理想情况下我希望所有异常都记录到日志文件而不是 stderr。

也就是说,我很高兴我现在一直将 stderr/stdout 文件与我的日志文件一起保存。

最佳答案

使用静态初始化器:

private static String name;

static {
try {
name = runMe();
} catch (RuntimeException e) {
// handle
}
}

关于java - 从主类中的静态字段捕获异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26897143/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com