Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C#에서 FileNotFoundException(파일 찾기 실패 예외)을 처리하는 방법

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를 통한 예외 처리와 사전 존재 여부 확인을 함께 활용하면, 파일 입출력 코드의 안정성과 신뢰성을 크게 높일 수 있습니다.