치춘짱베리굿나이스
[Rank 4] CPP 05 본문
CPP05
Repetition and Exceptions
반복과 예외
예외 클래스 (std::exception) 상속받아 예외 만들기
[Effective Modern C++] 항목 14. 예외를 방출하지 않을 함수는 noexcept로 선언하라
class ExceptionFoo: public std::exception {
public:
const char* what() const throw(); // C++98까지, 현재는 deprecated
const char* what() noexcept override; // C++11부터 추가된 키워드
};
std::exception
클래스 구현체를 보면 C++ 98에서는 throw()
를 사용하고, C++11부터는 noexcept
키워드를 사용한다
throw()
는 해당 멤버 함수가 예외가 발생할 여지가 없음을 나타내기 위해 빈 throw
함수로 표현한 것이다
여기서 맨 아래의 const char* what() const throw()
를 오버라이딩하면, 예외 발생 시 출력되는 문구를 재정의할 수 있다
에러 메시지는 what()
메서드로부터 받아와 출력하기 때문이다
C++ 파일 오픈 시 플래그
std::ios::in
- 읽기 위한 파일
std::ios::out
- 쓰기 위한 파일
std::ios::trunc
- 파일이 존재하면, 삭제하고 다시 생성
std::ios::binary
- 이진 파일 모드
위 플래그들은 |
기호 (or 기호) 를 통해 여러개를 같이 사용할 수 있다
'42 > 42s Cursus' 카테고리의 다른 글
[Rank 4] CPP 07 (0) | 2022.09.17 |
---|---|
[Rank 4] CPP 06 (0) | 2022.09.17 |
[Rank 4] CPP 04 (0) | 2022.09.11 |
[Rank 4] CPP 03 (0) | 2022.09.11 |
[Rank 4] CPP 02 (0) | 2022.09.11 |
Comments