C# Null 참조 예외란?
Null 참조 예외(NullReferenceException)는 null 객체를 참조할 때 발생하는 오류입니다. 값이 null로 설정된 멤버 필드나 함수에 접근하려고 할 때 이 예외가 발생합니다.
예를 들어 다음과 같이 null 문자열이 있다고 가정해 보겠습니다.
string str = null;
이 상태에서 null 문자열의 길이를 구하려고 하면 예외가 발생합니다.
if(str.Length == null) {}위 코드는 실행 시점에 예외를 던지게 됩니다. 그렇다면 null 참조 예외가 발생하지 않도록 어떻게 방지할 수 있을까요?
null 참조 예외 방지 방법
가장 기본적인 방법은 객체를 사용하기 전에 null 여부를 먼저 검사하는 것입니다. 아래 예제처럼 조건문으로 null 체크를 수행하면 예외 없이 안전하게 코드를 실행할 수 있습니다.
예제 코드
using System;
class Program {
static void Main() {
int[] arr = new int[5] {1,2,3,4,5};
display(arr);
arr = null;
display(arr);
}
static void display(int[] arr) {
if (arr == null) {
return;
}
Console.WriteLine(arr.Rank);
}
}실행 결과
1
위 코드에서 display 메서드는 배열을 전달받아 차수(Rank)를 출력합니다. 두 번째 호출에서는 arr이 null로 설정되었지만, 메서드 내부에서 if (arr == null) 조건으로 null을 먼저 확인한 뒤 조기 반환(return)하기 때문에 예외가 발생하지 않습니다.
결과적으로 첫 번째 호출에서만 1이 출력되고, 두 번째 호출은 null 검사에 의해 조용히 종료됩니다. 이처럼 null 체크 습관을 들이면 C# 프로그램에서 흔히 발생하는 NullReferenceException을 효과적으로 예방할 수 있습니다.