[c++] 파일 입출력 예외 처리

파일 입출력 작업을 수행할 때 예외 처리는 매우 중요합니다. 파일을 열거나 읽고 쓰는 과정에서 오류가 발생할 수 있기 때문에 프로그램이 이를 적절히 처리할 수 있어야 합니다.

파일 열기 예외 처리

파일을 열 때 발생할 수 있는 오류는 많습니다. 파일이 존재하지 않거나 권한이 없는 경우 등이 있을 수 있습니다. try-catch 블록을 사용하여 파일을 열 때 발생할 수 있는 예외를 처리할 수 있습니다.

#include <iostream>
#include <fstream>

int main() {
    std::ifstream file;
    try {
        file.open("file.txt");
        if (!file.is_open()) {
            throw std::runtime_error("파일을 열 수 없습니다.");
        }
        // 파일을 읽거나 쓰는 작업 수행
    } catch (const std::exception& e) {
        std::cerr << e.what() << std::endl;
    }
    return 0;
}

파일 읽기/쓰기 예외 처리

파일을 읽거나 쓸 때도 다양한 오류가 발생할 수 있습니다. 파일이 없는 경우, 디스크가 꽉 찬 경우, 파일이 다른 프로세스에 의해 사용 중인 경우 등이 있을 수 있습니다. try-catch 블록을 사용하여 파일 입출력 작업 중 발생할 수 있는 예외를 처리할 수 있습니다.

#include <iostream>
#include <fstream>

int main() {
    std::ofstream file;
    try {
        file.open("output.txt");
        if (!file.is_open()) {
            throw std::runtime_error("출력 파일을 열 수 없습니다.");
        }
        // 파일에 데이터 쓰기
        file << "Hello, World!";
        file.close();
    } catch (const std::exception& e) {
        std::cerr << e.what() << std::endl;
    }
    return 0;
}

예외 종류별 처리

파일 입출력 작업 중 발생할 수 있는 예외에 따라 각각의 예외에 맞는 처리를 해주어야 합니다. std::ifstream, std::ofstream 클래스의 멤버 함수를 사용하여 파일 상태를 확인하고, std::exception 클래스를 상속한 예외 클래스를 이용하여 예외 처리를 하는 것이 좋습니다.

결론

파일 입출력 작업을 수행할 때 예외 처리는 반드시 고려해야 합니다. 파일이 없는 경우, 읽거나 쓸 수 없는 경우 등 다양한 예외에 대비하여 프로그램을 안정적으로 작동시키기 위해 예외 처리를 적절히 이용해야 합니다.

이상으로 파일 입출력 예외 처리에 대한 내용을 마치겠습니다.

참고 문헌: cplusplus.com