java getcause_java – Exception.getCause()在尝试查找异常源时返回null-程序员宅基地

技术标签: java getcause  

为什么要System.out.println(e.getCause());给出null?

并且可以像这样存储整个HashSet集合吗?

private void saving() throws IOException, ClassNotFoundException {

ObjectOutputStream out = null;

try {

out = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(dataFile)));

out.writeObject(c);

} catch (java.io.NotSerializableException e) {

System.out.println(e.getCause());

} finally {

out.close();

}

}

使用printStackTrace()而不是getCause()

java.io.NotSerializableException: Data$1

at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1180)

at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528)

at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493)

at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416)

at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)

at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346)

at java.util.HashSet.writeObject(HashSet.java:284)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:616)

at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:962)

at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1480)

at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416)

at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)

at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346)

at Prozor.saving(Prozor.java:81)

at Prozor.actionPerformed(Prozor.java:57)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012)

at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:253)

at java.awt.Component.processMouseEvent(Component.java:6268)

at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)

at java.awt.Component.processEvent(Component.java:6033)

at java.awt.Container.processEvent(Container.java:2045)

at java.awt.Component.dispatchEventImpl(Component.java:4629)

at java.awt.Container.dispatchEventImpl(Container.java:2103)

at java.awt.Component.dispatchEvent(Component.java:4455)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4633)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4297)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4227)

at java.awt.Container.dispatchEventImpl(Container.java:2089)

at java.awt.Window.dispatchEventImpl(Window.java:2517)

at java.awt.Component.dispatchEvent(Component.java:4455)

at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:649)

at java.awt.EventQueue.access$000(EventQueue.java:96)

at java.awt.EventQueue$1.run(EventQueue.java:608)

at java.awt.EventQueue$1.run(EventQueue.java:606)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)

at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:116)

at java.awt.EventQueue$2.run(EventQueue.java:622)

at java.awt.EventQueue$2.run(EventQueue.java:620)

at java.security.AccessController.doPrivileged(Native Method)

at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:619)

at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)

at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)

仍然没有看到问题,除了它在第一个集合对象上占用,并且集合正在实现Serializable,所有对象也实现Serializable并且线程具有瞬态声明

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_33291720/article/details/114190490

智能推荐

android 9.0 SystemUI导航栏添加虚拟按键功能(三)_android 导航栏 增加按钮-程序员宅基地

文章浏览阅读970次。在9.0的系统产品开发中,对于在SystemUI的原生系统中默认只有三键导航,想添加其他虚拟按键就需要先在构建导航栏的相关布局中分析结构,然后添加相关的图标xml就可以了,然后添加对应的点击事件,就可以了,接下来先分析第三步关于导航栏的相关布局情况然后实现虚拟按键的点击事件功能_android 导航栏 增加按钮

分享面经 竞争对手,Android多线程,Android岗面试12家大厂成功跳槽-程序员宅基地

文章浏览阅读968次,点赞15次,收藏30次。Java里已内置4种常用的线程池(即 已经配置好核心参数),下面会详细说明。

Android使用自己的字体库让你的APP更漂亮_android 漂亮字库-程序员宅基地

文章浏览阅读1.9k次。Android系统是一个相对开放的系统,在我们平常开发的时候有时候会直接使用原生的控件更换下背景图片。如果想让我们的APP变得大漂亮,那么我们会对UI进行深度定制,变成我们所希望的那样。而一个APP的大漂亮除了UI的漂亮,很多时候字体也是影响大漂亮的因素之一。最近在开发中就有客户的需求是数字要显示为那种液晶仪表盘的那种方正一些的样子。OMG,可难为死我了。试了下Android自带的字体库,支持三种字体:Sans、serif、monospace,然后试了下。格劳资滴,看不出太明显的变化嘛,更别说要满足客户的_android 漂亮字库

操作系统期末复习知识点总结-程序员宅基地

文章浏览阅读4w次,点赞289次,收藏2.5k次。1. 操作系统的定义OS是一组控制和管理计算机硬件和软件资源,合理地对各类作业进行调度,方便用户使用计算机的程序集合。即为用户程序提供服务,是用户与硬件系统之间的接口。2. 操作系统的作用OS是计算机系统的核心,负责管理整个计算机系统的软硬件资源,制定各种资源的分配策略,调度系统中运行的用户程序,协调用户对资源的需求,从而使真个计算机系统高效有序的工作3. 操作系统的常见的分类①批处理操作系统:单道批处理(自动、顺序and单道性),多道批处理(宏观上并行,微观上串行,资源利用率高系统吞吐量大;用户响应时间长_操作系统期末复习

【异常解决】java: 无法访问org.springframework.boot.SpringApplication的解决方案_java: 无法访问org.springframework.boot.context.propert-程序员宅基地

文章浏览阅读2.1k次,点赞3次,收藏4次。对应的jdk11(如果maven里面设置了就不用改这个信息会自动生成对应的jdk编译版本)这里把所有的项目设置和对应的版本号全改成。报错原因:SpringBoot版本太高了。把这里的3.0.6改为2.7.4即可。_java: 无法访问org.springframework.boot.context.properties.configurationprope

Linux 内核优化简笔 - 高并发的系统-程序员宅基地

文章浏览阅读1.3k次,点赞31次,收藏17次。Linux 服务器在高并发场景下,默认的内核参数无法利用现有硬件,造成软件崩溃、卡顿、性能瓶颈。当然,修改参数只是让Linux更好软件的去利用已有的硬件资源,如果硬件资源不够也无法解决问题的。而且当硬件资源不足的时候,某些参数过大可能也会占用多余资源,或者影响稳定性。或者让单个进程占用过多资源,影响整体系统的运行。写本文的起因主要是对zabbix 服务器的高并发需求,还有数据库、Nginx、ES集群的高并发需求。more。

随便推点

vue基础指令_在vue中,可以通过____语法将数据输出到页面中。-程序员宅基地

文章浏览阅读1k次。指令概述:指令:英文单词,描述了一种简单的功能操作,如获取焦点;简单的DOM操作在Vue中统一的被封装成指令进行操作;什么是指令:包含了简单的DOM操作功能的组件!Vue中提供了自己的内建指令(掌握)、根据实际情况自定义指令(了解)Vue中的指令都是: 固定语法格式一、v-text指令指令名称:文本渲染指令指令描述:输出指令对应表达式的数据,即使数据中包含了标签,不会进行编译解释直接原样输出二、v-html指令名称:超文本/富文本渲染指令指令描述:输出指令对应表达式的数据,数据中一旦包含,会进行渲染解_在vue中,可以通过____语法将数据输出到页面中。

Navicat将Oracle数据导入到MySQL_navicate导出的oracel脚本可以导入到其它数据库内吗-程序员宅基地

文章浏览阅读1.1k次。本文介绍如何使用Navicat这款数据库工具,将Oracle上的数据导入到MySQL中。我是想将Oracle数据中的boot_init数据库数据传输到MySQL中。首先,你要有两个已经打开的Oracle和MySQL的数据库连接。然后点击 工具 》 数据传输 :然后进入数据传输界面,设置好源和目标。源连接——选择Oracle连接源模式——选择boot_init数据库..._navicate导出的oracel脚本可以导入到其它数据库内吗

有道云生成html,有道云笔记添加收藏功能实现原理-程序员宅基地

文章浏览阅读670次。有道云笔记收藏功能的本质就是在浏览器上执行一段js脚本,用js脚本来实现收藏功能,这和sec-wiki的快速分享到wiki功能类似。通过执行js这种方法而不是采用插件方式的好处是不用考虑浏览器的兼容性,具有通用性(虽然具体每个浏览器的js代码不一样,但可以写出具有通用性的js代码来兼容所有的浏览器)。使用js进行收藏的缺点是对某些网站失效,如github等https网站.下面是针对有道云笔记的收藏..._有道云网页收藏

Kali安装完成后的基本配置_kali tab预选-程序员宅基地

文章浏览阅读3.6k次,点赞2次,收藏9次。原文:https://blog.csdn.net/chaootis1/article/details/84137460Vmware tool安装,安装好的kali你会发现不能全屏,也不能从虚拟机到本机或者本机到虚拟机复制文件和文本,这样很不方便。。。我在初学的时候以为虚拟机就是这么难用。事实上,虚拟机为我们提供了一个工具可以解决这些问题。安装方法点击虚拟机上方的 虚拟机选项,倒数..._kali tab预选

【Android】APK的打包流程_apk源码怎么打包-程序员宅基地

文章浏览阅读1.7k次。APK打包流程apk其实就是一个压缩包,里面有lib,META-INF,classes.dex,res,resources.arsc等文件,我们对一个apk文件进行解压,可以发现里面其实有许多文件:每个文件对应的描述如下:res文件夹:包含了工程中res目录下除values以外的所有内容,一般包括各种layout文件,drawable。其中,layout文件内容是以二进制xml的方式进行保存的,而所有的drawable图像资源都是未经压缩过的原始文件。classes.dex文件:Android系_apk源码怎么打包

防火墙之Firewalld_firewalld清除所有规则-程序员宅基地

文章浏览阅读435次。1 firewalld 防火墙简介1.1​ firewalld 和 iptables 的关系1.2 firewalld 和 iptables 的区别1.3 firewalld 区域的概念1.3.1 firewalld 防火墙预定义了9个区域1.3.2 firewalld 网路区域1.3.3 firewalld 数据处理流程2 firewalld 防火墙的配置方法2.1 firewalld 服务管理2.2 区域管理2.3 服务管理2.4 端口管理补充 firewalld 设置 SNAT_firewalld清除所有规则

推荐文章

热门文章

相关标签