我正在编程一个Java Servlet应用程序,该应用程序需要某些环境变量和JNDI定义。这些在server.xml
文件中定义。无法使用默认值。因此,程序需要引发运行时(未经检查)异常。但是哪一个呢?如果java.lang.RuntimeException
的子类都不适合,我想我们将需要创建一个新类型。
答案 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类覆盖方法)
为什么要使用自定义异常。
答案 1 :(得分:0)
java.lang.NullPointerException
当(尚未)完成应用程序的配置时,变量可能为null,因此NullPointerException似乎合适。此异常非常普遍,但可以在构造函数中使用特定的详细消息进行自定义。
通过API:
应用程序应抛出此类的实例,以指示对null对象的其他非法使用。
- 访问或修改空对象的字段时。
throw new NullPointerException("environment variable XX is missing");