• 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()只是获取了异常的详细消息字符串

  • 相关阅读:
    执迷不悟
    splunk设置索引周期和索引大小
    下载地址sqlserver2008r2
    蓝牙
    1、IdentityServer4
    翻译名义集
    sql 字符取数字
    Aerial Images Dataset 航空图像数据集 收集
    基于VGG16模型对猫狗分类任务进行迁移学习
    Apollo配置中心
  • 原文地址:https://www.cnblogs.com/lyh421/p/6678360.html
Copyright © 2020-2023  润新知