e.getMessage() e.printStackTrace() 和e.printStackTrace() 小结

时间:2021-03-04 09:04:29

1 e.getMessage() ;    只会获得异常的名称。比如说NullPoint 空指针,就告诉你说是空指针

2.e.toString():  获得异常种类和错误信息

3.e.printStackTrace();    在控制台打印打印出详细的异常信息,异常名称。便于调试

3 如果异常是用无参构造器构造后续又没有设置message的话一般就是null,如果用带String参数的构造器构造的话,返回的就是那个参数。

下面是栗子1:

    public static String str =null;
    public static void main( String[] args )
    {
        try{
            if(str.equals("name")){}
        }catch (Exception e){
            System.out.println("e.toString()打印结果: "+ e.toString());
            System.out.println("e.getMessage()打印结果: "+ e.getMessage());
            System.out.println("============分割线=============");
            e.printStackTrace();
        }
    }

执行结果:

e.toString()打印结果: java.lang.NullPointerException
e.getMessage()打印结果: null
============分割线=============

java.lang.NullPointerException
at test.App.main(App.java:13)

下面是栗子2:

   public static int m = 0;
    public static void main( String[] args )
    {
        try{
            m = 899/0;
        }catch (Exception e){
            System.out.println("e.toString()打印结果: "+ e.toString());
            System.out.println("e.getMessage()打印结果: "+ e.getMessage());
            System.out.println("============分割线=============");
            e.printStackTrace();
        }
    }

执行结果:
e.toString()打印结果: java.lang.ArithmeticException: / by zero
e.getMessage()打印结果: / by zero
============分割线=============
java.lang.ArithmeticException: / by zero
at test.App2.main(App2.java:13)