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

智能推荐

ES全文检索支持拼音和繁简检索

介绍了在 Elasticsearch 中实现全文检索支持拼音和繁简检索的步骤。首先,介绍了如何引入 pinyin 插件和 ik 分词器插件,包括编译和安装的过程。然后,讲解了建立索引的步骤,包括设置文件和字段映射文件的配置。接着,提供了测试检索的方法和结果展示,包括中文简体、繁体查询以及拼音全拼和简拼查询。最后,还介绍了繁简转换功能的配置。整篇文档详细说明了每个步骤的操作,为实现全文检索功能提供了指导。

使用xshell工具连接ubuntu的root账户被拒绝的解决方法

详细介绍了使用xshell工具连接ubuntu系统的root用户时,被拒绝的问题。

golang学习之gin(二):模板渲染、数据渲染_engine.loadhtmlglob 多级目录-程序员宅基地

文章浏览阅读4.3k次,点赞5次,收藏16次。文章目录一、模板渲染:1. 一级模板:2. 多级模板:2.1 多级目录模板指定:二、静态文件的使用:三、数据渲染:1. 字符串渲染:2.结构体渲染:3. 数组渲染:4. 结构体数组渲染:5. map渲染:6. map+struct渲染:7. 切片渲染:一、模板渲染:1. 一级模板:./main.gopackage mainimport ( "github.com/gin-gonic/gin")func index(ctx *gin.Context) { // HTML(code _engine.loadhtmlglob 多级目录

Harmonyos快步前行,华为HarmonyOS 2.0正式发布,共赢移动终端产业的下一个十年-程序员宅基地

文章浏览阅读403次。2020年9月10日,华为消费者业务软件部总裁王成录又一次站在了松山湖华为开发者大会的主舞台上。今年,他带来了万众瞩目的华为鸿蒙HarmonyOS 2.0。此次HarmonyOS的升级,不仅仅带来了分布式能力的全面提升,还为开发者提供了完整的分布式设备与应用开发生态,全面使能全场景智慧生态,共赢移动终端产业的下一个十年。三大核心能力升级,HarmonyOS 2.0为开发者掌灯去年推出的Harmo...

Windows10删除蓝牙设备_此项不起作用请确保你的蓝牙设备仍可检测到-程序员宅基地

文章浏览阅读9.6k次。突然发现自己的蓝牙耳机连不上电脑,点击“连接”一直显示“此项不起作用请确保你的蓝牙设备仍可检测到”。想要删除设备重新连接,但是最后总是显示“删除失败”。(问题已解决,当时对故障情况进行截图保存)上图来自于他人的帖子尝试了网上很多帖子的方法:用修复工具删除设备、设备管理器中删除蓝牙设备、升级蓝牙驱动,但是始终无法删除蓝牙设备。最后,在控制面板-硬件和声音-设备和打印机-设备 中看到了我的蓝牙耳机。果断选中它,删除设备。当时耳机连着我的手机正在播放音乐,删除设备时发现音乐突然卡顿了一下,心想有戏!_此项不起作用请确保你的蓝牙设备仍可检测到

C++ libxl库读写Excel_libxl writeformula-程序员宅基地

文章浏览阅读1k次。#include<iostream>#include<stdio.h>#include <windows.h>#include "libxl.h"using namespace std;using namespace libxl;#pragma comment(lib,"libxl.lib")int main(){ Book* bo..._libxl writeformula

随便推点

influx 操作_Influxdb简单实用操作-程序员宅基地

文章浏览阅读650次。新的infludb版本已经取消了页面的访问方式,只能使用客户端来查看数据一、influxdb与传统数据库的比较库、表等比较:influxDB传统数据库中的概念database数据库measurement数据库中的表points表里面的一行数据influxdb数据的构成:Point由时间戳(time)、数据(field)、标签(tags)组成。Point属性传统数据库中的概念time每个数据记录时间...

增加PyQt5界面的交通流量预测(模型为CNN_GRU,CNN_BiGRU_ATTENTION,LSTM,Python代码)

对代码和数据集压缩包,感兴趣的可以关注最后一行。3.增加 PyQt5界面效果。2.三个模型和数据集的介绍。展示不同算法的对比指标。

【Hadoop】-Hive客户端:HiveServer2 & Beeline 与DataGrip & DBeaver[14]

DataGrip是由JetBrains公司推出的数据库管理软件,DataGrip支持几乎所有主流的关系数据库产品,如DB2、Derby、MySQL、Oracle、SQL Server等,也支持几乎所有主流的大数据生态圈SQL软件,并且提供了简单易用的界面,开发者上手几乎不会遇到任何困难。3、连接成功,在里面我们可以看到我们前面章节所创建的表,这样子就可以在里面操作我们的sql语句的。5、连接成功,在里面我们可以看到我们前面章节所创建的表,这样子就可以在里面操作我们的sql语句的。

【WINAPI】CreateSemaphore_信号量_winapi 信号量-程序员宅基地

文章浏览阅读5.2k次,点赞6次,收藏40次。【WINAPI】CreateSemaphore_信号量1. 注册信号量函数1.1 参数1.2 返回值2. 释放信号量函数2.1. 参数2.2. 返回值3. WaitForSingleObject3.2. 参数3.3. 返回值4. 例子4.1 运行结果图1. 注册信号量函数CreateSemaphore函数创建一个已命名或未命名的信号量对象HANDLE CreateSemaphore( LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, LONG lIni_winapi 信号量

FRTC8563时钟芯片的主要特性和应用场景

一款实时时钟(RTC)芯片,它采用SOP-8封装,这种封装形式使得芯片具有较小的体积和良好的引脚连接稳定性,便于集成到各种电子设备中。:该芯片采用低功耗技术,使得在待机状态下功耗极低,有助于延长电池寿命,特别适合用于便携式设备或长时间运行的系统。:FRTC8563基于稳定的晶振工作,能够提供准确的时钟和日历信息,包括年、月、日、星期、小时、分钟和秒等。:芯片支持较宽的电压范围,使其能够适应不同设备的电源需求。提供准确的时间戳和日历信息,支持设备的时间同步和事件记录。:在便携式仪器仪表中,由于其低功耗特性,