Как отловить ошибку деления на ноль в Visual Studio 2008 C ++?

Как я могу поймать ошибку деления на ноль (а не другие ошибки и получить доступ к информации об исключениях) в Visual Studio 2008 C ++?

Я попробовал это:

try {
  int j=0;
  int i= 1/j;//actually, we call a DLL here, which has divide-by-zero
} catch(std::exception& e){
  printf("%s %s\n", e.what()); 
}  catch(...){
  printf("generic exception");
}

Но это касается общего ... блока catch. Я понимаю, что специфичная для MS __try здесь может быть как-то полезна, но я бы предпочел стандарт C ++, и в любом случае у меня есть деструкторы, которые предотвращают использование __try.

ПОЯСНЕНИЕ: приведенный выше код упрощен для обсуждения. На самом деле, деление на ноль - это ошибка, которая возникает глубоко в сторонней DLL, для которой у меня нет исходного кода. Ошибка зависит от параметра (дескриптор сложной структуры), который я передаю в библиотеку, но никак не очевидным образом. Итак, я хочу быть в состоянии изящно восстановиться.

Ответы на вопрос(8)

Ваш ответ на вопрос