Почему мои исключения C ++ не перехватываются?
У меня есть код C ++, который использует очень стандартный шаблон исключений:
try {
// some code that throws a std::exception
}
catch (std::exception &e) {
// handle the exception
}
Проблема в том, что исключения не отслеживаются, и я не могу понять, почему.
Код компилируется в статическую библиотеку в OS X (через Xcode). Библиотека связана с приложением Какао, при этом вызов рассматриваемой функции происходит через интерфейс Objective-C ++. Я подозреваю, что взаимодействие между Objective-C и C ++ является виновником, но все мои попытки объяснить это потерпели неудачу.
Я не смог создать простой пример, который воспроизводит это поведение на простом примере. Когда я вынимаю соответствующий код из контекста моей большой программы, все работает.
Кто-нибудь может подсказать, почему мои исключения не ловятся?