printStackTrace()、toString()、getMessage()的区别

1、创建Exception对象
按照与创建Java对象一样的方法创建违例对象:在内存“堆”里,使用new来创建。
举例:

if (t  ==   null )
throw   new  NullPointerException();

这样便“掷”出了一个违例。在当前场景中,它使我们能放弃进一步解决该问题的企图。
该问题会被转移到其他更恰当的地方解决。准确地说,那个地方不久就会显露出来。

2、printStackTrace()、toString()、getMessage()的区别

  • public void printStackTrace()
    将此 throwable 及其追踪输出至标准错误流。
    此方法将此 Throwable或Exception 对象的堆栈跟踪输出至错误输出流,作为字段 System.err 的值。
    输出的第一行包含此对象的 toString() 方法的结果。剩余行表示以前由方法 fillInStackTrace() 记录的数据。
    输出格式举例:
    java.lang.NullPointerException
             at MyClass.mash(MyClass.java:
    9 )
             at MyClass.crunch(MyClass.java:
    6 )
             at MyClass.main(MyClass.java:
    3 )

    使用举例:
    try {
    //Java程序代码
    }

    catch (Exception e) {
    e.printStackTrace();
    }
     
  • public String getMessage()
    返回此 Throwable或Exception 的详细消息字符串。
    使用举例:
    try ... {
    //java程序代码
    }

    catch (Exception e) {
    System.out.println();
    }
     
    public String toString()
    返回此 Throwable或Exception  的简短描述。
    如果此 Throwable或Exception  对象是利用非空详细消息字符串创建的,则结果是三个字符串的串联:
    1)此对象的实际类的名称
    2)": "(冒号和空格)
    3)此对象的 getMessage() 方法的结果
    如果此 Throwable或Exception  对象利用 null 详细消息字符串创建,则返回此对象的实际类的名称。 使用举例:
    try ... {
    //Java程序代码
    }

    catch (Exception e) {
    System.err.println(e.toString());

你可能感兴趣的:(printStackTrace()、toString()、getMessage()的区别)