如何在 Java 中解決 NullPointerException?


NullPointerException 是 JVM 在我們的應用程式程式碼、其他引用的 API 或中介軟體遇到以下情況時丟擲的執行時異常。

  • 嘗試呼叫空物件的例項方法。

  • 嘗試訪問或修改空物件的特定欄位。

  • 嘗試獲取空物件作為陣列的長度。

解決 NullPointerException 的步驟

  • 檢視 java.lang.NullPointerException 堆疊跟蹤並確定異常觸發的位置(應用程式程式碼、第三方 API、中介軟體軟體並提取行號)。

  • 如果問題出現在應用程式程式碼中,則需要進行程式碼 walkthrough。如果問題來自第三方 API 或中介軟體,則需要首先檢視引用的程式碼並確定它是否可能是問題的間接來源,例如,將空值傳遞給第三方 API 方法等。

  • 如果在應用程式程式碼中發現問題,則嘗試確定哪個物件例項為空並導致問題。我們需要修改程式碼以新增適當的空值檢查驗證和正確的日誌記錄,以便我們也能瞭解空值的來源。

示例

public class NPEDemo {
   private String field1 = null;
   private String field2 = null;
   public String getField1() {
      return field1;
   }
   private void setField1(String field1) {
      this.field1 = field1;
   }
   public String getField2() {
      return field2;
   }
   private void setField2(String field2) {
      this.field2 = field2;
   }
   public static void main(String[] args) {
      try {
         NPEDemo npe = new NPEDemo();
         npe.setField1("field1 value");
         npe = null;
         npe.setField2("field2 Value");
      } catch (Throwable e) {
         System.out.println("Java Error is: "+e );
         e.printStackTrace();
      }
   }
}

輸出

Java Error is: java.lang.NullPointerException
java.lang.NullPointerException
	at NPEDemo.main(NPEDemo.java:21) 

更新於: 2023-11-21

2K+ 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告