문제

나는 테스트 프로그램이라고 ftest.니다.그래서 테스트가 포함된 파일을 실행하는 테스트를 찾습니다.이러한 시험을 로드하고 실행됩니다.그래서 포함된 그레스 데이터베이스 드라이버에 대한 우리의 O/RM.

을 때 드라이버레스 발생하는 예외에서 정의된다.그래서 파일(또는 연결되어 있다는 것을,하지만 ftest 결되지 않음)및 잡힌에 의해 테스트 프레임워크를 제외 소멸자를 트리거하 세그멘테이션.

이 세그멘테이션이 발생할 때마다 컴파일된 예외입니다.그래서 그는 동적으로드(사용 dload).

이런 종류의 물건에서 잘 작동합 Windows 동일한 건물입니다.우리가 정말 원하지 않을 제한하는 자신만 사용하는 예외에서 핵심 라이브러리--add-ins 해야 자신을 만들 예외 클래스고 있는 그들을 처리합니다.

이 예외는 서브 클래스의 std::예외는 아니다.때로는 예외를 정의할 수 있는 라이브러리에서(등 libpqxx)을 의미하는 예외는 때때로 우리의 통제에 너무입니다.

예외가 발생하여 다음과 같습니다.

throw exception_class( exception_arguments );

고용:

catch ( std::exception &e ) {
    // handler code
}

은 거기에 몇 가지 특별한 컴파일러 옵션을 얻을하는 데 필요한이 작동하고 있는가?해야 우리가 스위치를 던져를 통해 예외가 throw new exception_class( args ) (우리는지 정말 이런 일을 하고 싶)?

도움이 되었습니까?

해결책

가정하면 사용하는 gcc-

Append-Wl,E 를 작성할 때 실행화 dlload().이 수출의 모든 유형의 정보는 기호에서 실행해야하는,허용온(을 잡는 경우는 예외)제대로 작동합니다.

VC++사용하여 문자열과 비교하여 일치 않음,결과 느린 dynamic_cast<>등등 하지만 작은 수 있습니다.g++사용하여 포인터를 비교합니다.

나는 같은 문제가 발생할 때 사용하려고 시도하는 순수한 가상 인터페이스 클래스에서 구현된 실행 시간이 로드됩니다.니다.

거기에 몇 가지에 관한 기사 제목에 주위에 떠있는 순 뿐만 아니라.

도움이 됐으면 좋겠어, Hayman.

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