C ++에서는 예외 지정자를 사용하여 함수가 예외를 throw하거나 throw하지 않도록 지정할 수 있습니다. 예를 들면 :
void foo() throw(); // guaranteed not to throw an exception
void bar() throw(int); // may throw an exception of type int
void baz() throw(...); // may throw an exception of some unspecified type
다음과 같은 이유로 실제로 사용하는 것이 의문입니다.
- 컴파일러는 엄격한 방식으로 예외 지정자를 실제로 적용하지 않으므로 이점이 크지 않습니다. 이상적으로는 컴파일 오류가 발생합니다.
- 함수가 예외 지정자를 위반하면 표준 동작은 프로그램을 종료하는 것이라고 생각합니다.
- VS.Net에서는 throw (X)를 throw (...)로 취급하므로 표준 준수가 강하지 않습니다.
예외 지정자를 사용해야한다고 생각하십니까?
"예"또는 "아니오"로 대답하고 귀하의 대답을 정당화하는 몇 가지 이유를 제공하십시오.