문제

Dlopen 기능을 사용하여 동적 라이브러리를로드하려고합니다. 이 라이브러리에는 정적 객체가 포함되어있어 생성자에 예외가 발생합니다. Dlopen 호출 주위에 "Try-Catch (...)"블록이 있지만 예외는 포착되지 않으며 "Abort"가 인쇄 된 것을 볼 수 있습니다.

이 예외를 어떻게 잡을 수 있습니까?

도움이 되었습니까?

해결책

짧은 대답 : 당신은 할 수 없습니다

다시 생각합니다.
원래 진술은 유지되지만 dlopen ()은 C 라이브러리 기능이라는 것을 기억해야합니다. C는 예외를 지원하지 않습니다. 따라서 C ++ 코드에서 C로 교차하는 예외를 던지면 (Global Object Back Up To Dlopen ()) 코드도 응용 프로그램 종료를 유발합니다.

여기를 봐:왜 소멸자가 예외에서 호출되지 않습니까?

예외를 던지면 응용 프로그램이 종료되는 상황입니다. 특정 상황은 다음과 같습니다.

예외는 비 지역 정적 (IE Global)의 생성자/소멸자를 피합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top