转载自:https://www.cnblogs.com/lyh421/p/6678360.html

我使用的时候,抛出了空指针异常,本来是想将异常信息显示在errorInfo里,却发现没有拿到错误信息。

原因:我用的是getMessage()。

1 用e.getMessage() 时,返回的是null。
2 用e.toString()时,才返回错误信息:空指针异常。

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

所以以后项目里输出异常一定要输出e,这会打印出完整的堆栈信息。
重要的事情说三遍:输出异常到日常请输出e而不是e.getMessage()!

                                输出异常到日常请输出e而不是e.getMessage()!

                                输出异常到日常请输出e而不是e.getMessage()!

java中异常输出:e.toString() 与 e.getMessage()的区别相关推荐

  1. java 子类tostring,JAVA中Object类的toString()方法,objecttostring

    JAVA中Object类的toString()方法,objecttostring toString public String toString() 返回该对象的字符串表示.通常,toString 方 ...

  2. java中异常与return

    抽时间整理了下java中异常与return,以前这块总是弄混淆,觉得还是写下来慢慢整理比较好.由于水平有限,仅供参考.废话不多说,直接上代码. 下面是两个方法: 1 public static int ...

  3. 大数据——Java中异常的捕获和处理

    Java中异常的捕获和处理 异常的概述 认识异常 Java异常体系结构 Java异常处理机制 异常处理 使用try-catch处理异常 使用try-catch-finally处理异常 使用多重catc ...

  4. JAVA中集合输出的四种方式

    在JAVA中Collection输出有四种方式,分别如下: 一) Iterator输出. 该方式适用于Collection的所有子类. public class Hello {public stati ...

  5. java中异常抛出后代码还会继续执行吗

    java中异常抛出后代码还会继续执行吗 参考文章: (1)java中异常抛出后代码还会继续执行吗 (2)https://www.cnblogs.com/xiaoshen666/p/10848827.h ...

  6. java 错误码设计_关于Java中异常的设计

    Java中异常分为checked 和 unchecked 两种. 首先, 什么时候使用checked,什么时候用unchecked? checked本意是要求调用方处理这个异常, unchecked ...

  7. java中关于输出三角形图案类型题目的思路

    java中关于输出三角形图案类型题目的思路 初学java,在学到循环相关的知识的时候,老师总会拿出一些图形打印相关的题目来让大家来练习,其中比较经典的就是如下类似题目. 这种图形类的题目,只要能做出其 ...

  8. Java:中的String,StringBuilder,StringBuffer三者的区别

    Java中的String,StringBuilder,StringBuffer三者的区别 最近在学习Java的时候,遇到了这样一个问题,就是String,StringBuilder以及StringBu ...

  9. Java中的string定义的两种方法和区别

    java中的String定义的两种方法和区别 第一种:new方式 String s1 = new String("hello world"); String s2 = new St ...

最新文章

  1. python实现mqtt_Python实现MQTT接收订阅数据
  2. Node+Vue实现对数据的增删改查
  3. 又涨了?2021 年 3 月程序员工资统计新出炉
  4. html两个div间有白线,html-在特定浏览器宽度下,白线出现在渐变填充div的末尾
  5. Cloud一分钟 | 蚂蚁金服估值超万亿;Google大举进军游戏市场
  6. web农行支付php示例,ecshop,shopex完美实现农业银行(农行)在线支付接口
  7. 软件技术方案_广东省汕尾市海丰陈氏数字化网络化全县族谱统修工作方案(草案)...
  8. JSP项目实战视频教程
  9. 苹果计算机的优势,苹果笔记本的优缺点详细分析
  10. win8计算机意外,解决win8.1/win10开机提示“致命错误c0000034”的方案
  11. 【R语言】字符串处理
  12. cocos2d-x 全面总结--字体描边和制作阴影
  13. HTML常见问题整理1
  14. 神经网络冻结层,固定参数
  15. [JVM]了断局:字节码执行引擎
  16. 让应用程序禁止Windows屏幕保护
  17. asp.net(入门理解)
  18. python视频人声消除
  19. 基于MyEclipse+Tomcat+SqlServer+JSP开发得网上招标系统
  20. 社群运营必备的5大技巧和工具,请收下

热门文章

  1. 2019年一级建造师考试备考攻略,请收好!
  2. dex文件在模拟器测试运行
  3. js对象怎么通过value找到key
  4. ADO_Net学习笔记---总结
  5. Java面试题整理(内容来源于网络)
  6. 自己动手制作植物大战僵尸简单修改器(3)
  7. 【QT小记】QT中如何弹起菜单
  8. HTML 页面加载 Flash 插件的几种方法
  9. 2013 成都赛区网赛 D Minimum palindrome
  10. 基于Javaweb的篮球俱乐部管理系统