C에서 모든 예외를 잡는 방법
Java로 작업할 때 try-catch 블록을 활용하면 catch를 사용하여 모든 예외를 캡처할 수 있습니다. (Throwable t) 구문. 그러나 C에도 동등한 메커니즘이 있습니까?
특히 Windows 함수를 호출하는 JNI 코드를 디버깅하는 데 유용한 일반 예외 포착 메커니즘에 대한 이 요청을 처리하기 위해 C에서 이를 달성할 수 있는 방법은 다음과 같습니다.
<code class="cpp">try { // ... } catch (...) { // ... }</code>
이 코드는 try 블록 내의 모든 C 예외를 캡처합니다. 그러나 모든 예외를 포착하는 것은 일반적으로 좋지 않은 디자인 관행으로 간주된다는 점에 유의해야 합니다. 가능하다면 발생할 것으로 예상되는 예외에 대해 더 구체적인 catch 절을 사용하는 것이 좋습니다.
예를 들어 레거시 코드 제약으로 인해 C 11의 std::current_Exception 메커니즘을 사용할 수 없는 경우 다음과 같이 보다 세분화된 접근 방식을 고려할 수 있습니다.
<code class="cpp">try { // ... } catch (const std::exception& ex) { // ... } catch (const std::string& ex) { // ... } catch (...) { // ... }</code>
이것은 특정 예외 유형(이 경우 std::Exception 및 std::string)을 포착하는 동시에 최종 catch-all 절을 사용하여 예상치 못한 예외를 캡처합니다. . 명시적으로 처리하지 않은 예기치 않은 오류를 포착하기 위한 최후의 수단으로만 catch-all 절을 사용하는 것이 중요합니다.
위 내용은 Java의 Throwable과 마찬가지로 C에도 포괄적인 예외 메커니즘이 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!