Java에서 Null 포인터 예외 란
-
Java에서
NullPointerException
은 무엇입니까? -
Java에서
NullPointerException
클래스 처리 -
Java에서
NullPointerException
클래스 처리 -
Java의 명령 줄 인수에서
NullPointerException
발생
이 튜토리얼에서는 Java 널 포인터 예외와이를 처리하는 방법을 소개합니다. 따라 할 수있는 몇 가지 샘플 프로그램이 포함되어 있습니다.
Java에서 모든 참조 변수의 기본값은 메모리 위치를 가리키는 null 값이지만 관련 값이 없습니다. 프로그래머가이 참조 변수를 사용하여 작업을 수행하려고하면 널 조건으로 인해 널 포인터 예외가 발생합니다.
이 예외가 발생할 수있는 시나리오이지만이 예외는 Java에서 가장 많이 발생합니다. 이로 인해 코드가 중단되고 비정상적인 실행 흐름이 발생합니다. 다음 사항은 Java 코드에서NullPointerException
을 발생시킬 수 있습니다.
- null 개체의 인스턴스 메서드를 호출합니다.
- null 개체의 필드 수정.
- 널의 길이를 배열 인 것처럼 처리합니다.
이 예외를 처리하기 위해 Java는java.lang
패키지에있는NullPointerException
클래스를 제공합니다. catch
블록에서이 클래스를 사용하여 예외 유형을 지정한 다음 코드 중단을 피하기 위해 catch 할 수 있습니다.
Java에서NullPointerException
은 무엇입니까?
NullPointerException
클래스를 이해하는 가장 기본적인 예는string
객체를 만든 다음toUpperCase()
와 같은 메서드를 적용하여 문자열을 대문자로 변환하는 것입니다. 아래 예제를보고string
오브젝트가 비어 있기 때문에 예외가 발생하는 것을 확인하십시오.
public class SimpleTesting {
static String str;
public static void main(String[] args) {
String newStr = str.toUpperCase();
System.out.println(newStr);
}
}
출력:
Exception in thread "main" java.lang.NullPointerException
Java에서NullPointerException
클래스 처리
예외를 처리하기 위해 Java는 try-catch 블록을 제공합니다. 여기에서 이러한 블록을 사용하여NullPointerException
을 포착하고 비정상적인 프로그램 종료를 방지 할 수 있습니다. 아래 예를 확인하십시오.
public class SimpleTesting {
static String str;
public static void main(String[] args) {
try {
String newStr = str.toUpperCase();
System.out.println(newStr);
} catch (NullPointerException e) {
System.out.println("Null Pointer: " + e.getMessage());
}
}
}
출력:
{One=1, Two=2, Three=3}
Java에서NullPointerException
클래스 처리
null 참조에 대해 이미 알고있는 경우 작업을 적용하기 전에 if-else 블록을 사용하여 변수의 유효성을 검사 할 수 있습니다. 이 방법은 훌륭한 솔루션이지만 이전에 null 참조를 알고있는 경우에만 작동합니다. 여기에서 코드를 참조하십시오.
public class SimpleTesting {
static String str;
public static void main(String[] args) {
if (str != null) {
String newStr = str.toUpperCase();
System.out.println(newStr);
} else
System.out.println("String is null");
}
}
출력:
String is null
Java의 명령 줄 인수에서NullPointerException
발생
이것은 널 포인터 예외가 발생할 수있는 또 다른 시나리오입니다. main()
메서드의args[]
배열에는 명령 줄 인수가 포함되어 있으며 런타임 동안 인수가 제공되지 않으면 null 참조를 가리 킵니다. 길이를 가져 오면NullPointerException
이 반환됩니다. 아래 예를 참조하십시오.
public class SimpleTesting {
static String[] arr;
public static void main(String[] args) {
int length = arr.length;
System.out.println("Array length : " + length);
}
}
출력:
Exception in thread "main" java.lang.NullPointerException