2017-11-29 15 views
0

그래서 그 다소간이처럼 보이는 fstream 함께 무한 루프를 가지고 안쪽 USB 스틱에. 나는이 프로그램이 USB 스틱의 메모리 용량을 초과하고 발생할 오류를 잡을 것이라고 예견하고 싶습니다.

나는 그런 일이대로 bad_alloc 뿐이다()를 던질 것이라고 곳 읽고, 내 생각은 시도를 추가()캐치() 루프에 대한이며, 오류가 온다 완전히 프로그램을 종료합니다.

정확한 오류가 표시되는지 확실하지 않습니다. 누군가 잡기 예외를 도와 줄 수 있습니까?

감사합니다.

+0

나는 당신의 코드가 그렇게 좋아 보이지 않기를 바란다. 작동중인 코드를 작성한 다음 throw 된 예외를 catch하고 액세스 권한이있는 가장 작은 스틱에서 코드를 테스트하십시오. –

+0

가능한 복제본 https://stackoverflow.com/questions/40056884/disk-gets-full-during-file-write-how-can-i-get-notified-about-this – miradham

+0

가능한 복제본은 [디스크가 꽉 찼습니다. 파일 쓰기. 이 사실을 어떻게 알릴 수 있습니까?] (https://stackoverflow.com/questions/40056884/disk-gets-full-during-file-write-how-can-i-get-notified-about-) –

답변

2

이 경우 USB 스틱이 디스크로 취급되므로 메모리가 아닌 공간 부족 오류로 실패합니다.

fstream은 더 이상 디스크에 아무것도 쓸 수 없을 때 std :: ifstream :: failure를 발생시킵니다. (예외 마스크에 의해 제어 됨).