English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java의 메인 메서드에서 NullPointerException을 처리하지 않으면 어떤 일이 일어날까요?

Java에서는 각 타입에 기본 값이 있으며, 클래스의 인스턴스 변수를 초기화하지 않으면 Java 컴파일러가 이 값을 대신 초기화합니다. Null은 객체 타입의 기본 값이며, 메서드 내의 객체에도 수동으로 null을 할당할 수 있습니다.

Object obj = null;

그러나 null 값을 가진 객체를 사용하거나(또는 객체 대신 null 값을 사용하면) 예외가 발생합니다NullPointerException.

NullPointerException이 발생하는 몇 가지 경우는 다음과 같습니다.

  • 빈 객체를 사용하여 a 메서드(인스턴스)를 호출

public class Demo {
   public void demoMethod() {
      System.out.println("Hello how are you");
   }
   public static void main(String args[]) {
      Demo obj = null;
      obj.demoMethod();
   }
}

실행 시간 예외

스레드 "main"에서 예외 발생 java.lang.NullPointerException
at july_set3.Demo.main(Demo.java:11)
  • 빈 값을 가진(객체) 필드에 접근, 수정,打印

public class Demo {
   String name = "Krishna";
   int age = 25;
   public static void main(String args[]) {
      Demo obj = null;
      System.out.println(obj.age);
      System.out.println(obj.name);
   }
}

실행 시간 예외

스레드 "main"에서 예외 발생 java.lang.NullPointerException
at july_set3.Demo.main(Demo.java:11)
  • 접근하려고 시도(打印)/문장에서 빈 값을 가진 길이를 사용

public class Demo {
   String name = null;
   public static void main(String args[]) {
      Demo obj = new Demo();
      System.out.println(obj.name.length());
   }
}

실행 시간 예외

스레드 "main"에서 예외 발생 java.lang.NullPointerException
at july_set3.Demo.main(Demo.java:7)
  • 빈 값을 표시

public class Demo {
   public static void main(String args[]) {
      throw null;
   }
}

실행 시간 예외

스레드 "main"에서 예외 발생 java.lang.NullPointerException
at july_set3.Demo.main(Demo.java:5)
  • 빈 값을 가진 요소에 접근하거나 수정/슬롯.

public class Demo {
   public static void main(String args[]) {
      int myArray[] = null;
      System.out.println(myArray[5]);
   }
}

실행 시간 예외

스레드 "main"에서 예외 발생 java.lang.NullPointerException
   at july_set3.Demo.main(Demo.java:6)

NullPointerException 피하기

NullPointerException 피하기

  • 사용하기 전에 모든 객체가 초기화되었는지 확인하세요.

  • 각 참조 변수(객체, 배열 등)이 null이 아니라는 것을 확인한 후에 해당 필드와 메서드(만약 있을 경우)에 접근하세요.

NullPointerException 처리

네, main 메서드에서 NullPointerException을 처리하고 자신의 메시지를 표시할 수 있습니다. 그리고 처리되지 않았다면 프로그램은 실행 시 예외를 투げ던지고 NPE로 종료됩니다.

예제

public class Demo {
   public static void main(String args[]) {
      int myArray[] = null;
      try {
         System.out.println(myArray[5]);
      }
         System.out.println("NPE 발생");
      }
   }
}

출력 결과

NPE 발생

그러나 NullPointerException은 실행 시/비 검사된 예외, 따라서 실행 시에 처리할 필요가 없습니다.

또한, 프로그램에 수정해야 할 오류가 있으면 NPE가 발생합니다. 이 오류를 수정하거나 피하는 것이 좋으며, 예외를 잡으려고 시도하지 마세요.

당신이 좋아할 수 있는