我使用的时候,抛出了空指针异常,本来是想将异常信息显示在errorInfo里,却发现没有拿到错误信息。
原因:我用的是getMessage()。
1 用e.getMessage() 时,返回的是null。 2 用e.toString()时,才返回错误信息:空指针异常。
Exception e中e的getMessage()和toString()方法的区别:
http://blog.sina.com.cn/s/blog_9e2578150102vkyk.html
示例代码1:
1 public class TestInfo { 2 3 private static String str =null; 4 public static void main(String[] args) { 5 System.out.println("test exception"); 6 try { 7 if(str.equals("name")){ 8 System.out.println("test exception"); 9 } 10 } catch (Exception e) { 11 System.out.println(e.toString()); 12 System.out.println(e.getMessage()); 13 } 14 } 15 }
输出结果:
java.lang.NullPointerException null
示例代码2:
1 public class TestInfo { 2 3 private static int m = 0; 4 public static void main(String[] args) { 5 System.out.println("test exception"); 6 try { 7 m = 899/0; 8 } catch (Exception e) { 9 System.out.println(e.toString()); 10 System.out.println(e.getMessage()); 11 } 12 } 13 }
输出结果:
1 java.lang.ArithmeticException: / by zero 2 / by zero
总结:由此可以看出,e.toString()获取的信息包括异常类型和异常详细消息,而e.getMessage()只是获取了异常的详细消息字符串。