用Java打印异常消息的3种不同方式

在Java中, 有三种方法可以打印异常信息。所有这些都存在于Throwable类中。由于Throwable是所有异常和错误的基类, 因此我们可以在任何异常对象上使用这三种方法。
java.lang.Throwable.printStackTrace()方法:
通过使用此方法, 我们将在下一行获得名称(例如java.lang.ArithmeticException)和描述(例如/零), 并用冒号分隔, 并跟踪堆栈(在代码中发生该异常的位置)。 。
语法如下:

public void printStackTrace()

// Java program to demonstrate // printStackTrace method public class Test { public static void main(String[] args) { try { int a = 20 / 0 ; } catch (Exception e) { // printStackTrace method // prints line numbers + call stack e.printStackTrace(); // Prints what exception has been thrown System.out.println(e); } } }

运行时异常:
java.lang.ArithmeticException: / by zeroat Test.main(Test.java:9)

输出如下:
java.lang.ArithmeticException: / by zero

【用Java打印异常消息的3种不同方式】toString()方法
:
通过使用此方法, 我们将仅获得异常的名称和描述。请注意, 此方法在Throwable类中被重写。
// Java program to demonstrate // toStringmethod public class Test { public static void main(String[] args) { try { int a = 20 / 0 ; } catch (Exception e) { // toString method System.out.println(e.toString()); // OR // System.out.println(e); } } }

输出如下:
java.lang.ArithmeticException: / by zero

java.lang.Throwable.getMessage()方法:
通过使用此方法, 我们将仅获得异常的描述。
语法如下:
public String getMessage()

// Java program to demonstrate // getMessage method public class Test { public static void main(String[] args) { try { int a = 20 / 0 ; } catch (Exception e) { // getMessage method // Prints only the message of exception // and not the name of exception System.out.println(e.getMessage()); // Prints what exception has been thrown // System.out.println(e); } } }

输出如下:
/ by zero

如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请写评论。

    推荐阅读