Attraper une Violation d'Accès Mémoire en C++

En C++, est-il un moyen standard (ou de toute autre manière, d'ailleurs) pour attraper une exception déclenchée par une violation d'accès mémoire?

Par exemple, si quelque chose va mal et le programme essaie d'accéder à quelque chose qu'il n'était pas censé, comment voulez-vous obtenir un message d'erreur s'affiche en disant: "Violation d'Accès Mémoire!" au lieu de terminer le processus et de ne pas montrer à l'utilisateur toutes les informations au sujet de l'accident?

Je suis de la programmation d'un jeu pour Windows avec MinGW, si ça peut aider tout.

Pourquoi quelqu'un voudrait-il empêcher un fou furieux programme qui tentent de modifier la mémoire protégée par la fin ?
En général, vous n'avez pas "attraper" ces, à vous de les corriger de se produire en premier lieu en cours d'exécution par le biais d'un débogueur, tels que GDB.
Je pense qu'il a juste envie de montrer soigné de la fenêtre de sortie au lieu de la valeur par défaut la fenêtre de l'OS, puis de le laisser mettre fin de toute façon. Rien de mal à cela.
Il n'y a pas de moyen de le récupérer à partir. Puisque vous ne savez même pas si la pile d'appel est sain d'esprit à ce point, en jetant une des exceptions C++ (qui doit se détendre de la pile et de détruire les objets concernés) n'est pas vraiment possible. D'ailleurs, que voulez-vous écrire dans le gestionnaire que vous êtes certains est sûr?
Dans l'intérêt de la clarté: à partir d'un C++ perspective, l'accès à la mémoire non allouée est un comportement indéterminé, pas une exception. Il peut ou peut ne pas être une exception au niveau du système d'exploitation, par exemple, une violation d'accès dans Windows ou une erreur de segmentation dans Linux. Vous pouvez être en mesure de signaler ceux que zakinster suggéré.

OriginalL'auteur rsethc | 2013-05-17