Java 在main()中可丢弃的日志记录

Java 在main()中可丢弃的日志记录,java,throwable,Java,Throwable,由于不同帖子中列出的原因,捕捉可丢弃的是不可取的。然而,像下面这样构造一个主结构有意义吗?如果删除了可丢弃行,则不会记录错误 public static void main(String[] args) { try { launchMyApplication(); } catch (SomeCheckedException e) { //recover if you can, log it if you can't } catch (Exc

由于不同帖子中列出的原因,捕捉可丢弃的
是不可取的。然而,像下面这样构造一个主结构有意义吗?如果删除了可丢弃行,则不会记录错误

public static void main(String[] args) {
    try {
        launchMyApplication();
    } catch (SomeCheckedException e) {
        //recover if you can, log it if you can't
    } catch (Exception e) {
        //recover if you can (unlikely), log it if you can't
    } catch (Throwable e) {
        //Don't try to recover, but log it
        logger.error("Oops: {}", e);
    }
}

以这种方式实现只会处理在主线程上抛出的一次性事件


解决此问题的最佳方法是使用。

因此,如果异常被第一根阴极捕获,它会被最后一根线捕获吗?否则它将无法通过
catch(异常e)
。不,我不会在
main()
+1个好问题中重复。也希望得到一些好的答案。这里有一些关于捕获Throwable的有趣信息:@Jivings Throwable将在发生错误时被调用,比如StackOverflowerError,因为它们是Throwable的子类,但不是Exception。