e.getMessage() e.printStackTrace() 和e.printStackTrace() 小结
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)