当前位置: 首页 > 知识库问答 >
问题:

java中用户定义异常的编码样式

鄢晔
2023-03-14

我正在做一个java项目。在浏览用户定义的异常类的现有代码时,我遇到了一个错误,代码如下所示:

public final class ApplicationException extends RuntimeException {

public static void enforce(final String message) {
    throw new ApplicationException(message);
}
private ApplicationException(final String message) {
    super(message);
}
}

每当我必须在代码中抛出异常时,我就会编写

ApplicationException.enforce("exception message here");

我想知道这是某种编码风格或模式,即在公共静态方法中包含异常的创建和抛出,并在我们想要抛出异常时调用该方法?

开发人员选择这种方式抛出异常的原因可能是什么?为什么不直接编写抛出新的ApplicationException(“某些消息”) 需要时。

使用这种风格有什么好处?

提前谢谢


共有2个答案

卢志行
2023-03-14

我不认为有任何具体的原因,而且该模式在Java项目中并不常用。

他可能只是为了好看才使用了这样的代码。

欧阳子石
2023-03-14

它将new关键字封装在一个方法中,这可能被视为将用户定义的异常生成一种简单的工厂

这对于以后的维护和/或测试可能有好处,因为您只需更改exforce方法的实现,调用它的客户端代码就会更改。

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

  • 问题内容: 我对此并不陌生,请尝试阅读一些文档,但无法正常工作,请耐心等待。 我创建了一个使用这样的: 这是我的服务: 的是一个例外。 我尝试了这个: 但是,当我调用服务时,不会被调用。看来我可能缺少东西。那么如何定义这个异常呢? 请让我知道如何定义。 问题答案: 您需要使用注释您的异常映射器,否则它将永远不会在JAX- RS运行时中注册。

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

  • 在一次采访中,我最近被问到以下问题: 有没有其他方法可以创建自定义的,而不使用: 扩展异常类或的子类,用于检查异常 为未检查的异常扩展或的子类。 可能的答案是什么?

  • 我正在尝试使用Java8命令抛出一个自定义的Expetion。然而,我得到了以下编译错误: 和扩展RunTimeException的自定义异常类UserNotFoundException如下所示: 提前道谢。

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