코딩 모닥불
  • 메뉴 닫기
  • 글작성
  • 방명록
  • 환경설정
    • 분류 전체보기
      • C++
      • 표준 라이브러리
      • 백준(BOJ)
  • 홈
  • 태그
  • 방명록
C++

[C++] 예외 클래스( exception class )

예외 클래스( exception class )throw는 예외를 발생시키기 위해서 어떠한 타입의 값이라도 사용할 수 있고, 이런 타입의 종류에는 당연히 클래스도 포함됩니다. [C++] 예외 처리를 위한 throw와 try-catch의 동작 방식C++에서의 예외( exception ) 처리C++에서는 프로그램의 오류나 기대하지 못했던 상황이 발생한 경우, 이를 처리하기 위한 예외( exception )를 발생시키면, 프로그램이 자동으로, 이 예외를 처리할 수codingbonfire.tistory.com예외를 발생시킬 때 사용되는 클래스를 예외 클래스( exceptin class )라고 부르는데, 사실 이 예외 클래스와 일반 클래스의 차이점은 전혀 없습니다.단지, 예외가 발생된 이유를 설명하기 위한 값과 함..

2025. 4. 4.
C++

[C++] 예외가 발생되지 않는 함수를 선언하는 noexcept

noexcept 지시자( specifier )noexcept는 함수 이름의 끝에 붙는 지시자로, 이 지시자가 붙은 함수는 예외( exception )를 발생시키지 않는다는 것을 명시합니다. 하지만, noexcept 함수 실행 시, 컴파일러에 의해 예외가 발생하는 것이 방지되거나 해서, 프로그램이 예외로부터 안전해지는 것을 말하는 것이 아니라, 이 함수에서는 예외가 발생하지 않으니까, 예외에 민감한 문맥에서도 안심하고 사용할 수 있을 뿐만 아니라, 컴파일러는 이 함수를 최적화해서 성능을 향상할 수 있다고 얘기를 하는 것입니다. 즉, 이 noexcept 지시자를 사용한다는 것은, 함수와 이 함수를 사용한 프로그램 간의 일종의 계약이라고 봐야 합니다. 그런데 만약, 이렇게 말해온 함수에서 예외가 외부로 발생하..

2025. 4. 3.
C++

[C++] 생성자와 소멸자에서의 예외( exception ) 처리

생성자( constructor )에서의 예외 처리생성자를 작성하다 보면, 의외로 문제가 발생할 여지가 꽤 있다는 것을 깨닫게 됩니다. 맨 먼저 떠오르는 경우는, 메모리를 대규모로 할당할 때, 실패하는 경우를 들 수 있습니다. 또 다른 경우로는, 클래스 객체가 지속적으로 사용하게 될 변수의 값을 채워 넣기 위해, 생성자에서 호출하는 계산 함수의 오류를 들 수 있습니다.하지만, 이런 문제들은 다른 곳에서도 얼마든지 일어날 수 있는 경우들입니다. 그러나, 일반 함수와 달리, 생성자는 성공 여부를 반환할 수 없기 때문에, 이런 경우를 자연스럽게 처리할 수 없습니다. 그래서 이를 우회하는 방식으로, 실패했다는 정보를 객체 안에 저장해 두거나, 객체를 사용 전 검산을 통해서 제대로 된 결과를 갖고 있다는 것을 확인..

2025. 4. 2.
  • «
  • 1
  • »

전체 카테고리

  • 분류 전체보기
    • C++
    • 표준 라이브러리
    • 백준(BOJ)

블로그 인기글

태그

  • #const
  • #포인터
  • #헤더 가드
  • #std::sort
  • #복사 생성자
  • #std::string_view
  • #std::unique_ptr
  • #초기화
  • #std::queue
  • #예외 처리
  • #깊이 우선 탐색
  • #범위 기반 for
  • #소멸자
  • #상수 표현식
  • #동적 계획법
  • #함수 객체
  • #전처리기
  • #auto
  • #std::stack
  • #std::vector
  • #constexpr
  • #using
  • #inline
  • #Lamda
  • #decltype
  • #Enum
  • #namespace
  • #static_cast
  • #전방 선언
  • #이진 탐색
MORE
애드센스 광고 영역
Powered by Privatenote Copyright © 코딩 모닥불 All rights reserved. TistoryWhaleSkin3.4

티스토리툴바