C에 예외 지정자를 통합해야 합니까?
C의 예외 지정자를 사용하면 함수가 다음과 같이 예외를 throw할 수 있는지 여부를 나타낼 수 있습니다.
<code class="cpp">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</code>
이러한 지정자는 의도를 전달할 수 있지만 여러 요인으로 인해 실제 사용에 의문이 듭니다.
적용의 제한
컴파일러는 예외 지정자를 시행하여 효율성을 줄입니다. 이상적인 동작에는 사양 위반에 대한 컴파일 오류가 포함되지만 이것이 보장되지는 않습니다.
위반에 대한 엄격한 처벌
함수가 예외 지정자를 위반하는 경우 표준 동작은 다음과 같습니다. 프로그램을 종료합니다. 이러한 가혹한 대응은 모든 경우에 바람직하지 않을 수 있습니다.
개발 환경의 일관되지 않은 처리
VS.Net과 같은 일부 개발 환경에서는 throw(X)를 다음과 같이 처리합니다. throw(...)는 표준 준수를 약화시킵니다.
예외 지정자에 대한 주장
위의 우려 외에도 예외 사용을 반대하는 여러 주장이 있습니다. 지정자:
예외 지정자가 유용할 수 있는 경우
예외 지정자를 사용하지 않는 일반적인 권장 사항에도 불구하고 다음과 같은 경우에는 여전히 유용할 수 있습니다.
위 내용은 예외 지정자는 현대 C에서도 여전히 관련이 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!