C의 Catch 블록: 값 대 참조
C에서는 값 또는 참조로 예외를 포착하는 것 중에서 선택할 수 있습니다. . 이 결정은 코드의 동작과 정확성에 영향을 미칠 수 있습니다.
표준 실행
C의 예외에 대한 표준 실행은 값으로 던지고 참조로 잡는 것입니다.
추론
가치로 잡는 것은 상속 계층이 있는 경우 문제가 발생합니다. 다음 예를 고려하십시오.
class CustomException { public: int errorCode; }; class MyException : public CustomException { public: MyException() { errorCode = 5; } };
MyException이 발생하고 값에 의해 포착되면 이는 CustomException 인스턴스로 변환되어 오류 코드가 0으로 설정됩니다. 이로 인해 예기치 않은 동작이 발생할 수 있습니다.
참조로 잡기
참조로 예외를 포착하면 원래 발생한 예외는 다음과 같습니다. 유지되므로 예외 속성에 정확하게 액세스할 수 있습니다. 위의 예에서 MyException &e를 포착하면 오류 코드가 5로 설정된 상태로 유지됩니다.
값으로 포착해야 하는 경우
값으로 포착하는 경우가 드물지만 있습니다. 다음과 같은 경우가 바람직합니다.
권장
일반적으로 특히 다음과 같은 상황에서 예외를 올바르게 처리하려면 값으로 던지고 참조로 잡는 표준 관행을 따르는 것이 좋습니다. 상속.
위 내용은 C에서 값이나 참조로 파악하려면: 어느 것이 다른 것보다 나은가?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!