프로그램이 파일 읽기 클래스를 사용하여 존재하지 않는 파일의 일부 (즉, ios_base :: end 다음에 있음)에 액세스하려고하면 예외가 발생해야합니까?파일에 대한 예외 처리
나는 std :: out_of_range를 사용할 것이지만 지금은 std :: runtime_error가 더 적절할 것이라고 생각하기 시작했다.
편집 :
인터페이스는이 for
루프보다는 while
루프 주위를 기반으로한다는 점에서 표준 fstream
클래스보다 조금 다르게 작동합니다. 그래서 대신하고 다음, 예외를 throw 표준 라이브러리가하는 것처럼 수행하고 "최종의 설정하지 마십시오
for (std::streampos Pos = 0; Pos < MyFile.GetCharCount(); Pos++)
{
char Character = MyFile.GetChar(Pos);
// Do stuff with Character.
}
내 편집을 참조하십시오. 이 경우 EOF 플래그는 실제로 의미가 없습니다. – Maxpm
@ Maxx : 그럼 당신은'char's 배열을 가지고있는 것 같습니까? 그런 다음 몇 가지 가능성이 있습니다. 그냥 허용하지 않고 원래 제안과 같은 예외를 던지십시오.이 경우 out_of_range가 더 적합하거나 단순히'EOF' 문자 만 반환하십시오. 아니면 그냥 배열의 마지막 문자를 반환합니다. – Xeo