zoukankan      html  css  js  c++  java
  • 2017.4.7 e.toString() 与 e.getMessage()的区别

    我使用的时候,抛出了空指针异常,本来是想将异常信息显示在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()只是获取了异常的详细消息字符串

  • 相关阅读:
    idea 找不到包或找不到符号
    JOISC部分题解
    欧拉数学习笔记
    [清华集训2017]生成树计数
    [ZJOI2019]开关
    【题解】CF817E Choosing The Commander
    CSP-S 2020游记
    【学习笔记】线段树合并
    【题解】[IOI2005]Riv 河流
    【题解】哈希冲突
  • 原文地址:https://www.cnblogs.com/lyh421/p/6678360.html
Copyright © 2011-2022 走看看