[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