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

Java中的子类化异常:自定义消息何时“不够好”?

唐兴发
2023-03-14
问题内容

这更多是最佳实践问题。

目前,我正在使用旧的Java代码。我看到很多Exception的子类只会覆盖构造函数。我不确定像这样子类化Exception是否有实际用途。我认为仅调用Exception构造函数并传递消息就一样有效,并且周围不会有很多子类。代码是责任。


问题答案:

子类化的目的是您的 代码 可以区分不同类型的故障,并以不同的方式对待它们。如果您只是更改消息,那么 人类 可以在日志中区分它们,仅此而已。

如果您看到的异常实际上没有不同的处理方式,而是陷入了混乱之中,catch(Exception e)那么也许有人对子类的热情过高,但这通常对于干净地分离代码层以及确定应该处理的类很有用。什么样的问题。

例如,一种类型的异常可能表示超时,并且可能会在短暂的延迟后重试,而另一种类型的异常表明发生了不可恢复的故障(可能是无效查询),必须将其抛出更高的级别或也许指示给用户。



 类似资料:
  • 我是一名Java编程新手(实际上已经在学习),我对如何处理不同的消息有些怀疑。 我的目标是将这些不同的消息包含在同一个类(CustomExcpse类)中,以避免在从其他类抛出新CustomExceptions的每个方法上一遍又一遍地编写相同的字符串。 到目前为止,我编码: > 一个自定义异常类,它从异常扩展而来,具有不同的消息(在示例中只有两个,但还有更多)作为Strings包含,当然还有构造函数

  • 我使用netbeans创建了这个异常类: 当我尝试编译时,问题变得更加突出,在setter方法中,我得到以下消息: 错误:未报告异常异常;必须捕获或声明被抛出抛出新车辆异常(2,matricula);C:\users\ivan\desktop\examen isidrer\m03-uf5\exmaenm03uf5\src\info\infomila\vehicle.java:55:错误:未报告的异

  • 我在spring boot RESTfull项目中有一些特殊情况,而不是标准的自定义身份验证异常时的错误消息。我需要一个不同的消息取决于用户名或密码是错误的,或者如果用户名不存在,或者如果用户在数据库中被停用。目前我只能得到消息,我还没有找到任何解决方案,如何根据用户属性或特殊情况自定义消息。 我当前有如下自定义身份验证提供程序: 我有这样的定制用户详细信息服务: 在哪里可以处理来自的消息,并将其

  • 本文向大家介绍Java如何实现自定义异常类,包括了Java如何实现自定义异常类的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了Java如何实现自定义异常类,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 自定义异常类步骤   创建一个类继承异常父类Exception   在具体的实现方法首部抛出异常类(自己创建的那个类),throws的

  • 如果 Java 提供的内置异常类型不能满足程序设计的需求,这时我们可以自己设计 Java 类库或框架,其中包括异常类型。实现自定义异常类需要继承 Exception 类或其子类,如果自定义运行时异常类需继承 RuntimeException 类或其子类。 自定义异常的语法形式为: 在编码规范上,一般将自定义异常类的类名命名为 XXXException,其中 XXX 用来代表该异常的作用。 自定义异

  • 简介 此消息 用来接收 用户自定义TOPIC消息 发送过来的事件。 消息体 ChannelMessageBean 例子 Kotlin @Subscribe(threadMode = ThreadMode.MAIN) fun onReceiveCustomMessage(customEvent: ChannelMessageBean) { // TODO } ChannelMessageB