用Java打印异常消息的不同方法

每当引发异常时,Throwable类都会提供各种方法来提供与异常相关的信息,例如异常名称,异常描述和堆栈跟踪等。

我们将讨论Throwable类的三种方法,它们提供了与异常相关的信息,因此这些方法的名称为:

  1. printStackTrace()方法

  2. toString()方法

  3. getMessage()方法

我们将看到这些方法的目的是什么以及它是如何工作的...

1)printStackTrace()方法

  • 软件包java.lang.Throwable.printStackTrace()中提供了此方法。

  • 此方法提供了与异常相关的信息,我们将看到此方法将提供哪些信息。

    • 异常名称

    • 异常说明

    • 异常的堆栈跟踪

语法:

    Name of the Exception : Description of the Exception
    Stack Trace of the Exception

示例

class PrintStackTrace {

    public static void main(String[] args) {

        Object obj = null;

        try {
            System.out.println(obj.toString());
        } catch (Exception ex) {
            /*Display exception name : exception description
            Stack trace */
            ex.printStackTrace();
        }

    }

}

输出结果

E:\Programs>javac PrintStackTrace.java
E:\Programs>java PrintStackTrace
java.lang.NullPointerException
        at PrintStackTrace.main(PrintStackTrace.java:8)

2)toString()方法

  • 包java.lang.Throwable.toString()中提供了此方法。

  • 此方法还提供了与异常相关的信息,我们将再次看到此方法将提供的信息。

    • 异常名称

    • 异常说明

语法:

    Name of the Exception : Description of the Exception

示例

class ToStringMethod {

    public static void main(String[] args) {

        try {
            int i = 10 / 0;
            System.out.println(i);
        } catch (Exception ex) {
            //显示异常名称:异常描述		
            System.out.println(ex.toString());
        }

    }

}

输出结果

E:\Programs>javac ToStringMethod.java

E:\Programs>java ToStringMethod
java.lang.ArithmeticException: / by zero

3)getMessage()方法

  • 包java.lang.Throwable.printStackTrace()中也提供此方法。

  • 此方法提供了与异常相关的信息,我们将看到此方法将提供哪些信息。
    异常说明

  • 此方法不提供其他信息,例如异常名称和异常堆栈跟踪。

语法:

    Description of the Exception

示例

class GetMessageMethod {

    public static void main(String[] args) {

        try {
            int i = 10 / 0;
            System.out.println(i);
        } catch (Exception ex) {
            //显示异常说明
            System.out.println(ex.getMessage());
        }

    }

}

输出结果

E:\Programs>javac GetMessageMethod.java

E:\Programs>java GetMessageMethod
/ by zero