치춘짱베리굿나이스

[Rank 4] CPP 05 본문

42/42s Cursus

[Rank 4] CPP 05

치춘 2022. 9. 11. 22:38

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