当前位置: 首页 > 面试题库 >

为什么我的异常类需要序列化?

范宏大
2023-03-14
问题内容

当您使用Exception类扩展一个类(用于创建新的异常)时,会收到警告,提示您有一个serialVersionUID。我知道这serialVersionUID在序列化和反序列化过程中起着重要的作用,但是何时需要序列化我的Exception?谁能给我一个实际的案例,让我的自定义异常类具有序列化和反序列化?


问题答案:

这是因为所有异常的根类都Throwable实现了Serializable接口。默认情况下,所有异常都是可序列化的,这是一种语言设计决策,因为作者希望异常能够在没有任何特殊配置的情况下通过网络发送。

如果基类不可序列化,那么在远程方法失败的情况下,您将很难传递确切的错误信息,因为您无法控制内置的异常类型。



 类似资料:
  • 问题内容: 要编译此代码,我可以: 将我的通话置于try / catch块中,或 已经声明它可以抛出一个。 为什么我必须这样做? (示例代码来自Kathy Sierra的SCJP书 。) 我知道引发的异常是已检查的异常,因此我必须处理它,但是在什么情况下需要引发此异常? 问题答案: 如果以一种可以引发检查异常的方式声明方法(不是的子类),则调用该方法的代码必须在一个块中调用它,否则调用者方法必须声

  • 问题内容: 我在dos.oracle.com上找到了这个 公共静态列表syncedList(列表列表) 返回由指定列表支持的同步(线程安全)列表。为了保证串行访问,至关重要的是,对后备列表的所有访问都必须通过返回的列表来完成。当用户遍历返回列表时,必须手动对其进行同步: 我的问题是:如果应该返回已经同步的列表,为什么我必须同步列表以对其进行迭代? 我只是在两个线程中访问列表:一个线程只是添加,另一

  • 问题内容: Angular应用使用属性而不是事件。 为什么是这样? 问题答案: ng-click包含一个角度表达式。Angular表达式是在Angular 范围的上下文中求值的,该范围绑定到具有ng- click属性的元素或该元素的祖先。 Angular表达式语言不包含流控制语句,也不能声明变量或定义函数。这些限制意味着模板只能访问由控制器或指令提供的变量和运行功能。

  • 我用Spring AOP写了一个非常简单的方面。这是可行的,但我在理解到底发生了什么方面有一些问题。我不明白为什么我必须添加aspectjweaver。罐子Spring AOP文档明确指出,只要我只使用Spring AOP,我就不需要aspectj编译器或weaver: 尽管AOP运行时仍然是纯Spring AOP,并且不依赖AspectJ编译器或weaver。 我的配置如下所示: 我也尝试了XM

  • 问题内容: 我用Spring AOP写了一个非常简单的Aspect。它有效,但是我在理解实际情况时遇到了一些问题。我不明白为什么我必须添加Aspectjweaver.jar?Spring- AOP文档明确指出,只要我仅使用Spring-AOP,就不需要AspectJ编译器或weaver: 但是,AOP运行时仍然是纯Spring AOP,并且不依赖于AspectJ编译器或编织器。 我的配置如下所示:

  • 以我的拙见,关于“什么是单子”这个著名问题的答案,尤其是投票最多的答案,试图解释什么是单子,而没有明确解释为什么单子是真正必要的。它们能被解释为一个问题的解决方案吗?