解决方案:用e.printStackTrace() e.getMessage()为null也很正常,NullPointException的getMessage()就为null 我在抛出Exception时也可以直接  throw new MyException(); 这样getMessage()返回的就是null了

这几天做的项目,测试小组说测出来的异常日志有问题,没有把异常的信息打印出来,但是我回去看代码每一个catch语句里面都有getMessage呀,怎么getMessage会为空的呢?很是不懂其中的原因,之后上百度搜了下资料,觉得有下面一丢丢的总结,不知道正确不,不妥的地方希望各位大神帮我补充下

Java的异常关系图如下

测试小组说的那个没有getMessage信息打印出来的异常就是一个nullPointerException异常,后面我又去动手试了下其他的几个runtime异常,发现getMessage都是为空的,之后我又去试了下SQLException和IOException,发现者两种异常的在catch的时候getMessage是不为null的。由此我觉得runtime异常发生的时候JVM调用的是父类无参的构造器

public Exception() {

super();

}

而SQLException和IOException异常发生的时候JVM调用的是父类有参的构造器

public Exception(String message) {

super(message);

}

所以SQLException和IOException的getMessage不为null,而runtime异常却为空。但是为什么SQLException和IOException调用的是有参的,而runtime异常调用的是无参,我还不知道具体原因,但是避免getMessage为null的话可以使用e.printStackTrace()或者logger.error("msg", e)把异常的信息打印出来。

java e.getmessage() null_Java e.getMessage 错误信息为null相关推荐

  1. import java.util.Objects;报错。错误信息为: Objects cannot be resolved

    import java.util.Objects;报错 错误信息为: Objects cannot be resolved 原因:jre版本问题,JDK1.7.0才有Objects类 解决办法: 在M ...

  2. java 垃圾回收 null_java方法中把对象置null,到底能不能加速垃圾回收

    今天逛脉脉,看见匿名区有人说java中把对做置null,这种做法很菜,不能加速垃圾回收,但是我看到就觉得呵呵了,我是觉得可以加速置null对象回收的. 测试的过程中,费劲的是要指定一个合理的测试堆大小 ...

  3. java文件流null_JAVA 获取资源文件对象为NULL

    今天,写一个添加背景音乐的方法时,在导入当前文件夹下的音乐时中始终出现,以下的异常,Exception in thread "main" java.lang.NullPointer ...

  4. java 捕获异常打印详细错误信息:Exception e

    前言 dubbo接口数据进行转换的过程中,出现了空指针,但是自己捕获的时候没有注意这个问题,只是简单的打印出来,结果发现答应出来的都是null,基本上是无效的异常打印. 完善异常信息 一开始的代码是如 ...

  5. java异常自定义返回信息,Spring Boot 如何自定义返回错误码错误信息

    说明 在实际的开发过程中,很多时候要定义符合自己业务的错误码和错误信息,而不是统一的而不是统一的下面这种格式返回到调用端 INTERNAL_SERVER_ERROR(500, "Intern ...

  6. java项目校内网的描述_[导入]校内网的错误信息

    本人在发表日志时的错误信息.... 刚开始说是有非法字符,点击多了,就直接给我错误信息了!汗! 500 Servlet Exception java.lang.NoClassDefFoundError ...

  7. java filter 返回错误消息_利用java filter 实现业务异常拦截 跳转到错误信息提示页面...

    1.缘由:我们在做项目中肯定都会遇到自定义业务异常 ,然后将业务异常信息跳转的统一的信息提示页面的情况,比如我们在struts的时候我们会用到struts的异常处理机制,我们在业务层会跑出我们遇到业务 ...

  8. java中错误的源文件,关于Java源文件结构规则,说法错误的是()A.版权信息必须在java文件的开头B.package语句在imports...

    关于Java源文件结构规则,说法错误的是()A.版权信息必须在java文件的开头B.package语句在imports 更多相关问题 霍乱患者产生"米泔样"粪便由下列哪种致病因素直 ...

  9. 为什么玩我的世界老提示Java se错误_我的世界error错误信息 error could解决方法

    我的世界是一个及其开放的沙盒游戏,而在这个游戏中有不少的问题,比如说遇到error该如何解决呢,看小编给大家带来的我的世界error错误的解决方法,希望大家喜欢. error应用程序错误信息.包括&q ...

最新文章

  1. 链mysql_mysql 版本链机制 readView
  2. 运动是如何改造我们的大脑?
  3. linux PHP 编译安装参数详解
  4. linux控制流程,Linux-流程控制:for 循环
  5. Kafka设计解析(四):Kafka Consumer解析--转
  6. 清华大学 计算机系 尹霞,轮椅上的清华博士毕业了,刷屏的还有她......
  7. Java 字符串拼接的各种玩法
  8. 面试指南(一):想跳槽,你真的做好准备了吗?
  9. anaconda 创建,激活,退出,删除环境
  10. 为什么300的并发能把支持最大连接数4000数据库压死
  11. Google Earth Engine(GEE)基于哨兵数据计算植被覆盖度—以宁夏为例
  12. Android性能优化(二)内存优化
  13. java基于ssm的校车车辆调度管理系统
  14. mysql 切分_Mysql字符串切分
  15. 人工智能给未来教育的挑战
  16. The Evils of Duplication
  17. JAVA文件搜索过程中如何得到各种文件内容(office文件,PDF,邮件,mht,思维导图等)
  18. Learn to See in the Dark 论文解读
  19. java mysql 1366_MySql中的error-code='1366', sqlstate='HY000'错误
  20. win10计算机添加右键菜单,win10怎么添加右键菜单

热门文章

  1. initializeBean()方法为容器产生的Bean 实例对象添加BeanPostProcessor 后置处理器
  2. 【技术改造】电商系统用户模块集成Feign-1
  3. 缓存-SpringCache-自定义缓存配置
  4. flume案例-flume级联-配置文件编写
  5. 百万数据报表读取:解决方案及原理分析
  6. apollo数据库安装与常见错误说明
  7. SpringBoot_配置-@Conditional自动配置报告
  8. spring WebSocket详解
  9. 200725学习日报循环语句和数组
  10. Allegro PCB 如何测量距离?比如走线之间的距离