[C#] 예외 처리와 파일 입출력 완벽 가이드

2025. 4. 17. 13:58개발이야기

728x90
반응형
반응형

프로그래밍에서는 예상하지 못한 문제가 항상 발생할 수 있습니다.
C#에서는 예외(Exception) 처리를 통해 프로그램이 갑자기 종료되는 것을 막고,
파일 입출력(File IO) 기능으로 파일을 읽고 쓸 수 있습니다.

이번 글에서는 try-catch-finally 구조와, 파일을 읽고 쓰는 기본 방법을 정리해봅니다.


1. 예외 처리 (Exception Handling)

 try-catch-finally 구조

try
{
    // 예외가 발생할 수 있는 코드
    int x = int.Parse("not a number");
}
catch (FormatException ex)
{
    Console.WriteLine("형식이 잘못되었습니다: " + ex.Message);
}
catch (Exception ex)
{
    Console.WriteLine("오류 발생: " + ex.Message);
}
finally
{
    Console.WriteLine("무조건 실행되는 블록");
}
  • try: 예외가 발생할 수 있는 코드를 감쌈
  • catch: 예외가 발생하면 실행됨
  • finally: 예외 발생 여부와 관계없이 항상 실행

 여러 catch 사용하기

특정 예외만 따로 처리할 수 있습니다.

catch (IOException ex)
{
    Console.WriteLine("파일 입출력 오류: " + ex.Message);
}
catch (NullReferenceException ex)
{
    Console.WriteLine("널 참조 오류: " + ex.Message);
}

 throw로 직접 예외 던지기

throw new Exception("문제가 발생했습니다!");

2. 파일 입출력 (File IO)

 파일에 쓰기

using System.IO;

File.WriteAllText("sample.txt", "Hello, World!");
  • 지정한 파일에 문자열을 기록합니다.
  • 파일이 없으면 새로 생성, 있으면 덮어쓰기

 파일에서 읽기

string content = File.ReadAllText("sample.txt");
Console.WriteLine(content);
  • 파일 내용을 한 번에 읽어 문자열로 반환합니다.

 줄 단위로 읽고 쓰기

// 여러 줄 쓰기
string[] lines = { "첫 번째 줄", "두 번째 줄", "세 번째 줄" };
File.WriteAllLines("lines.txt", lines);

// 여러 줄 읽기
string[] readLines = File.ReadAllLines("lines.txt");
foreach (string line in readLines)
{
    Console.WriteLine(line);
}

3. 실전 예제: 파일 읽고 없으면 새로 만들기

string path = "data.txt";

try
{
    if (!File.Exists(path))
    {
        File.WriteAllText(path, "초기 데이터");
    }

    string text = File.ReadAllText(path);
    Console.WriteLine("파일 내용:");
    Console.WriteLine(text);
}
catch (Exception ex)
{
    Console.WriteLine("오류 발생: " + ex.Message);
}

이번 글에서는

  • try-catch-finally를 통한 예외 처리 방법
  • File 클래스를 이용한 파일 읽고 쓰기 방법 을 정리했습니다.

안전한 코드 작성파일 기반 데이터 처리는 모든 프로그램에서 기본이 되는 기술입니다.

 

728x90
반응형