exception

김대익·2022년 3월 24일
0

C에서는 예외처리가 없기 때문에
모든 에러는 &arg, return로 처리하였다.

C++에서는

  • std::optional
  • std::variant
  • std::tuple / pair
    로 에러를 리턴하였고

추가로 예외처리로 에러를 관리할 수 있다.


예외처리는

  • try
  • catch
  • throw

가 전부인데,
try는 exception이 일어날 수도 있는 코드를 시도해보는 것이고
catch는 exception은 잡고
throw는 exception 객체를 던진다고 생각하면 된다.



위와 같이 나누는 함수에서 b가 0이면 int로 나눌수 없으므로 에러가 발생한다.
앞에서는 optional, variant, tuple, pair로 에러처리를 해주었는데

예외처리를 사용하는 예를 보면


try에서 먼저 코드를 실행시켜보고

만약 b==0이면 exception객체를 생성해서 던져준다



이후 divide 함수에서 빠져나와
catch문 exception객체가 있다면 그 내용을 실행한다



e.what()을 이용하면


exception 객체 안의 내용를 출력할 수 있다.



...을 사용하는 경우 어떠한 exception도 잡아낸다는 뜻이다

0개의 댓글