缺少InitialContext定义时要使用哪个Java运行时异常

时间:2018-07-30 09:45:53

标签: java exception servlets runtimeexception initial-context

我正在编程一个Java Servlet应用程序,该应用程序需要某些环境变量和JNDI定义。这些在server.xml文件中定义。无法使用默认值。因此,程序需要引发运行时(未经检查)异常。但是哪一个呢?如果java.lang.RuntimeException的子类都不适合,我想我们将需要创建一个新类型。

2 个答案:

答案 0 :(得分:1)

您可以使用已经定义的异常,但是我通常只是实现自己的异常,因为抛出异常后,我始终可以快速识别它。 (它仅通过具有项目的类路径即可告诉您更多信息。)

public class MissingInitialContextException extends RuntimeException {
    public MissingInitialContextException() {
    }

    public MissingInitialContextException(String message) {
        super(message);
    }

    public MissingInitialContextException(String message, Throwable cause) {
        super(message, cause);
    }

    public MissingInitialContextException(Throwable cause) {
        super(cause);
    }

    public MissingInitialContextException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
        super(message, cause, enableSuppression, writableStackTrace);
    }
}

您可以在大多数IDE中自动生成此类。 (IDEA,在创建类之后,请按ALT + ENTER并从RuntimeException类覆盖方法)

为什么要使用自定义异常。

  • 您可以使用IDE的find实现和其他搜索功能来查找用法
  • 在某些框架中,例如在Spring Boot中,您可以使用注释来修饰异常,并快速定义响应文本和http错误代码。
  • 您可以稍后更改异常的实现。
  • 您可以在IDE中为自定义异常定义自动中断异常,而如果对内置异常进行自动中断,则调试器将在意外行中停止。
  • 您可以避免无意中捕获其他库的异常。

答案 1 :(得分:0)

java.lang.NullPointerException

当(尚未)完成应用程序的配置时,变量可能为null,因此NullPointerException似乎合适。此异常非常普遍,但可以在构造函数中使用特定的详细消息进行自定义。

通过API:

  

应用程序应抛出此类的实例,以指示对null对象的其他非法使用。

     
      
  • 访问或修改空对象的字段时。
  •   
throw new NullPointerException("environment variable XX is missing");