java中异常输出:e.toString() 与 e.getMessage()的区别
转载自: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()的区别相关推荐
- java 子类tostring,JAVA中Object类的toString()方法,objecttostring
JAVA中Object类的toString()方法,objecttostring toString public String toString() 返回该对象的字符串表示.通常,toString 方 ...
- java中异常与return
抽时间整理了下java中异常与return,以前这块总是弄混淆,觉得还是写下来慢慢整理比较好.由于水平有限,仅供参考.废话不多说,直接上代码. 下面是两个方法: 1 public static int ...
- 大数据——Java中异常的捕获和处理
Java中异常的捕获和处理 异常的概述 认识异常 Java异常体系结构 Java异常处理机制 异常处理 使用try-catch处理异常 使用try-catch-finally处理异常 使用多重catc ...
- JAVA中集合输出的四种方式
在JAVA中Collection输出有四种方式,分别如下: 一) Iterator输出. 该方式适用于Collection的所有子类. public class Hello {public stati ...
- java中异常抛出后代码还会继续执行吗
java中异常抛出后代码还会继续执行吗 参考文章: (1)java中异常抛出后代码还会继续执行吗 (2)https://www.cnblogs.com/xiaoshen666/p/10848827.h ...
- java 错误码设计_关于Java中异常的设计
Java中异常分为checked 和 unchecked 两种. 首先, 什么时候使用checked,什么时候用unchecked? checked本意是要求调用方处理这个异常, unchecked ...
- java中关于输出三角形图案类型题目的思路
java中关于输出三角形图案类型题目的思路 初学java,在学到循环相关的知识的时候,老师总会拿出一些图形打印相关的题目来让大家来练习,其中比较经典的就是如下类似题目. 这种图形类的题目,只要能做出其 ...
- Java:中的String,StringBuilder,StringBuffer三者的区别
Java中的String,StringBuilder,StringBuffer三者的区别 最近在学习Java的时候,遇到了这样一个问题,就是String,StringBuilder以及StringBu ...
- Java中的string定义的两种方法和区别
java中的String定义的两种方法和区别 第一种:new方式 String s1 = new String("hello world"); String s2 = new St ...
最新文章
- python实现mqtt_Python实现MQTT接收订阅数据
- Node+Vue实现对数据的增删改查
- 又涨了?2021 年 3 月程序员工资统计新出炉
- html两个div间有白线,html-在特定浏览器宽度下,白线出现在渐变填充div的末尾
- Cloud一分钟 | 蚂蚁金服估值超万亿;Google大举进军游戏市场
- web农行支付php示例,ecshop,shopex完美实现农业银行(农行)在线支付接口
- 软件技术方案_广东省汕尾市海丰陈氏数字化网络化全县族谱统修工作方案(草案)...
- JSP项目实战视频教程
- 苹果计算机的优势,苹果笔记本的优缺点详细分析
- win8计算机意外,解决win8.1/win10开机提示“致命错误c0000034”的方案
- 【R语言】字符串处理
- cocos2d-x 全面总结--字体描边和制作阴影
- HTML常见问题整理1
- 神经网络冻结层,固定参数
- [JVM]了断局:字节码执行引擎
- 让应用程序禁止Windows屏幕保护
- asp.net(入门理解)
- python视频人声消除
- 基于MyEclipse+Tomcat+SqlServer+JSP开发得网上招标系统
- 社群运营必备的5大技巧和工具,请收下