Je me demandais juste si une exception système comme dire diviser par zéro "jette" quelque chose à l'application. Serait-il possible d'attraper ceci en quelque sorte par défaut?Attraper des exceptions par défaut en C++
je veux dire que nous pouvons définir une fracture personnalisée fn qui vérifie diviseur nul et génère une exception, mais juste pensé que ce serait bien si cette exception a été levée par défaut
//say I do this
int i;
try
{
i /= 0; // My compiler (gcc) did warn abt the divide by zero :-)
}
catch (...)
{
// Can we get here for this case?
}
L'observation clé ici est que la division par 0 est un comportement indéfini en ce qui concerne la norme C++. Cela signifie que les implémentations individuelles peuvent faire ce qu'elles veulent - interrompre le processus avec un signal, lancer une exception, téléphoner à votre patron et lui dire que vous ne pouvez pas coder pour le caramel, peu importe. –
Pour Windows, vous pouvez utiliser SetUnhandledExceptionFilter pour installer un gestionnaire qui à son tour peut lancer des exceptions C++, par exemple. dérivé de std :: exception. –
Vous devez activer/EHa pour attraper diviser par zéro, etc en Visual C++: http://msdn.microsoft.com/en-us/library/1deeycx5%28VS.80%29.aspx –