dlopen na Biblioteca com o membro estático que joga a exceção no construtor - resulta em Abort

StackOverflow https://stackoverflow.com/questions/413473

Pergunta

Estou tentando carregar uma biblioteca dinâmica utilizando a função dlopen. Esta biblioteca contém um objeto estático, o que gera uma exceção em seu construtor. Eu tenho um bloco em torno da chamada dlopen "try-catch (...)", mas não capturar a exceção, e eu só vejo "Abort" impresso.

Como eu sou capaz de pegar essa exceção?

Foi útil?

Solução

Resposta curta: Você não pode

pensar nisso novamente.
As declarações originais detém, mas você também deve lembrar que dlopen () é uma função de biblioteca C. C não suportam exceções. Assim lançar uma exceção que passe de código C ++ para C (O seu objeto de volta mundial até) (dlopen) código irá também causa o encerramento do aplicativo.

Veja aqui: Por destrutor não é chamado de exceção

Estas são as situações em que lançar uma exceção irá terminar a aplicação. Sua situação específica é coberto por:

Uma exceção escapa o construtor / destruidor de um estático não local (ou seja global)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top