C# FileNotFoundException이란?
FileNotFoundException은 프로그램이 존재하지 않는 파일에 접근하려고 시도할 때 발생하는 예외입니다. 파일 입출력 작업을 수행하기 전에 해당 파일이 실제로 존재하는지 확인하지 않으면 이 예외가 런타임 중에 발생하여 프로그램이 비정상적으로 종료될 수 있습니다.
FileNotFoundException이 발생하는 상황
예를 들어, StreamReader에 실제로 존재하지 않는 "new.txt"라는 파일을 지정했다고 가정해 보겠습니다. StreamReader를 사용해 이 파일을 읽으려고 하면 다음과 같이 FileNotFoundException이 발생합니다.
using (StreamReader sReader = new StreamReader("new.txt")) {
sReader.ReadToEnd();
}try-catch로 예외 처리하기
이러한 예외를 안전하게 처리하려면 try-catch 블록을 사용해야 합니다. catch 블록에서 FileNotFoundException을 명시적으로 지정하면, 파일을 찾지 못했을 때 프로그램이 종료되는 대신 원하는 방식으로 오류를 처리할 수 있습니다.
try {
using (StreamReader sReader = new StreamReader("new.txt")) {
sReader.ReadToEnd();
}
} catch (FileNotFoundException e) {
Console.WriteLine("파일을 찾을 수 없습니다!");
Console.WriteLine(e);
}추가 팁: File.Exists()로 사전 확인하기
예외 처리와 더불어, 파일에 접근하기 전에 File.Exists() 메서드를 사용해 파일의 존재 여부를 미리 확인하는 것도 좋은 습관입니다.
if (File.Exists("new.txt")) {
using (StreamReader sReader = new StreamReader("new.txt")) {
string content = sReader.ReadToEnd();
}
} else {
Console.WriteLine("파일이 존재하지 않습니다.");
}이처럼 try-catch를 통한 예외 처리와 사전 존재 여부 확인을 함께 활용하면, 파일 입출력 코드의 안정성과 신뢰성을 크게 높일 수 있습니다.