gpt4 book ai didi

java - 来自异常对象的信息通过 java.util.logging

转载 作者:行者123 更新时间:2023-11-30 11:24:15 25 4
gpt4 key购买 nike

我想在我的 Java 应用程序开发过程中进行日志记录。我想要在异常处理期间来自异常对象的信息。优先向对象查询哪些信息?使用 .getMessage() 方法,还是 .toString() 方法?

我的 .getMessage() 代码片段:

try {
//my code
} catch( Exception ex ) {
log.log( Level.SEVERE, ex.getMessage(), ex );
}

我的 .toString() 代码片段:

try {
//my code
} catch( Exception ex ) {
log.log( Level.SEVERE, ex.toString(), ex );
}

最佳答案

默认情况下,异常的toString()方法会将异常类的名称和异常的消息放在一起。因此,与 getMessage 的唯一区别是 toString() 也会为您提供异常类。

现在,无论哪种方式,java.util.logging 都会打印类的名称、它的消息和堆栈跟踪,因为您将异常作为调用的第三个参数传递给 日志。因此,提供getMessage()toString() 的结果是没有用的。您应该改为放置一条消息,指示发生异常的上下文以及其他相关信息。

例如,考虑以下内容:

    String identifier = "duck";

try {
int result = Integer.parseInt(identifier);
}
catch(Exception e) {
log.log(Level.SEVERE, "Failed to parse the identifier.", e);
}

由于“duck”不是整数,这将导致异常。然后程序将打印:

SEVERE: Failed to parse the identifier.
java.lang.NumberFormatException: For input string: "duck"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at test.DDD.main(DDD.java:13)

关于java - 来自异常对象的信息通过 java.util.logging,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20723050/

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