簡體   English   中英

缺少InitialContext定義時要使用哪個Java運行時異常

[英]Which Java Runtime Exception to Use When Missing an InitialContext Definition

我正在編程一個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對象的其他非法使用。

  • 訪問或修改空對象的字段時。
throw new NullPointerException("environment variable XX is missing");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM