Java ClassNotFoundException存储自己的原因副本
我有Oracle的Java实现(1.6.0_37),我对Java ClassNotFoundException存储自己的原因副本,java,classnotfoundexception,standard-library,Java,Classnotfoundexception,Standard Library,我有Oracle的Java实现(1.6.0_37),我对ClassNotFoundException源代码感兴趣。如果您查看它,您将看到该类存储它自己的原因副本: private Throwable ex; 我只是看不出它有什么意义——它与Throwable类中声明的字段完全相似 谁能解释一下为什么Java类库开发人员决定这么做?可能是因为没有人想到要删除它 将原因添加到中的可丢弃项;它没有出现在我的电脑里 但是,ClassNotFoundException的版本确实有原因,因为当静态初始值设
ClassNotFoundException
源代码感兴趣。如果您查看它,您将看到该类存储它自己的原因副本:
private Throwable ex;
我只是看不出它有什么意义——它与Throwable
类中声明的字段完全相似
谁能解释一下为什么Java类库开发人员决定这么做?可能是因为没有人想到要删除它 将
原因
添加到中的可丢弃项
;它没有出现在我的电脑里
但是,
ClassNotFoundException
的版本确实有原因,因为当静态初始值设定项失败时(实际上,由于任何加载问题),会发生此异常,在不知道原因的情况下进行调试可能会非常令人沮丧。可能是因为他们希望向后兼容使用旧Java版本序列化的异常对象。
保留字段似乎比维护自定义writeObject/readObject方法简单