CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ CnUnix ] in KIDS
글 쓴 이(By): shamin (S Kim)
날 짜 (Date): 2003년 6월  6일 금요일 오후 02시 44분 10초
제 목(Title): Re: c++ exception handling (윈도, 유닉스



처음부터의 오해는 에러를 예외로 가정한데서 오는 것 
같습니다만, 예외(Exception)와 에러는 다릅니다.
두 개념을 서로 섞지 마십시오. 이 두 가지 개념은
표준에서 예외처리 기술을 만들었던 BS, Koenig, 
T. Williams 등 1980년대 초기의 표준 위원회에 의해 
명확히 구분되고 있습니다. 그리고 당시 위원회의
의도는 지금도 유효합니다.

예외처리는 에러의 처리를 의미하지 않습니다.

이는 이식성의 문제이고 뭐고를 다 떠나서 
C++ 언어에서 예외처리 기술을 정의하기 위한
기본적인 가정이었습니다.

제수가 0인 나눗셈 연산은 예외적인 상황의 발생이 아닌
단순한 수식의 에러입니다.

예외와 에러가 구분이 안되십니까?

예를 들어봅시다.

- 프로그램에서 A의 경우만을 가정하였는데, B가 
발생한다면 예외입니다.
- a[10]의 배열에서 a[20]의 접근을 하였다면
이는 에러입니다.
- 바로 위의 예에서 배열의 첨자를 변수로 두고,
첨자에 조건이 10미만의 0과 양의정수만으로
한정하는 것이라면, 첨자에 20이 오는 것은
예외입니다.

정리하자면 다음과 같습니다.

- 예외는 올바른 프로그램(1)이 정상적으로 동작하지 
못하는 경우의 발생이고,
- 에러는 올바르지 못한 프로그램(2)이 일으키는
잘못을 말합니다.

1 : conforming program or strictly c.p.
2 : ill-formed program or UB depeneded program


--
S Kim
[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.