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



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

您可以使用已经定义的异常,但我通常只实现自己的异常,因为当它被抛出时,我总是可以快速识别它。(只需拥有项目的类路径,它就能告诉您更多信息。(

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中为自定义异常定义自动中断异常,而如果您为内置异常执行此操作,则调试器将在意外行中停止
  • 您可以避免无意中捕获其他库的异常

java.lang.NullPointerException

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

来自API:

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

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

最新更新