Jak złapać błąd dzielenia przez zero w Visual Studio 2008 C ++?

W jaki sposób mogę złapać błąd dzielenia przez zero (a nie inne błędy i mieć dostęp do informacji o wyjątkach) w Visual Studio 2008 C ++?

Próbowałem tego:

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");
}

Ale dotyczy to ogólnego bloku catch. Rozumiem, że specyficzny dla MS __try może się tu jakoś przydać, ale wolałbym standardowy C ++, aw każdym razie mam destruktory, które uniemożliwiają użycie __try.

WYJAŚNIENIE: Powyższy kod jest uproszczony do celów dyskusji. Właściwie divide-by-zero jest błędem, który występuje głęboko w zewnętrznej bibliotece DLL, dla której nie mam kodu źródłowego. Błąd zależy od parametru (uchwyt złożonej struktury), który przekazuję do biblioteki, ale nie w żaden oczywisty sposób. Chcę więc móc odzyskać wdzięk.

questionAnswers(8)

yourAnswerToTheQuestion