Este hilo lo creo a modo de aclaracion en referencia a otro hilo donde se discutio el mismo tema, en el cual el moderador de turno brindo información no del todo acertada, luego de manera arbitraria procedio a bloquear el hilo sin razon alguna. Lo cual me parecio injusto, ya que cerro la posibilidad de que otro usuario pueda opinar al respecto.
En lo referente al tema, C++ dispone de una lista de excepciones establecidas que son lanzadas por throw producto de algun error, hay que dejar en claro que try/catch solo puede capturar excepciones lanzadas por throw, por tanto obviamente un segfault, division por cero no son inherentes al C++ estandar, es una situacion que se produce de manera inesperada a nivel hardware, por lo tanto ya es dependiente de cada OS y compilador la manera controlarlos.
Mas info: http://stackoverflow.com/questions/1823721/how-to-catch-the-null-pointer-exception
Otra cosa es usar alguna extension del compilador para interpretar un segfault como una excepcion de C++ estandar (lo cual no es nada portable) como es el caso de Visual C++:
Mas info: http://www.codeproject.com/Articles/207464/Exception-Handling-in-Visual-Cplusplus
https://msdn.microsoft.com/en-us/library/1deeycx5(v=vs.80).aspx
En lo referente al tema, C++ dispone de una lista de excepciones establecidas que son lanzadas por throw producto de algun error, hay que dejar en claro que try/catch solo puede capturar excepciones lanzadas por throw, por tanto obviamente un segfault, division por cero no son inherentes al C++ estandar, es una situacion que se produce de manera inesperada a nivel hardware, por lo tanto ya es dependiente de cada OS y compilador la manera controlarlos.
Mas info: http://stackoverflow.com/questions/1823721/how-to-catch-the-null-pointer-exception
Otra cosa es usar alguna extension del compilador para interpretar un segfault como una excepcion de C++ estandar (lo cual no es nada portable) como es el caso de Visual C++:
CitarException Handling Model
You can set an exception handling model for your Visual C++ compiler with /EHs (or EHsc) to specify synchronous exception handling model, or /EHa to specify asynchronous exception handling model. The asynchronous model can be used to force the try{}catch(){} construction to catch both SEH and C++ typed exceptions (the same effect can be achieved with the _set_se_translator() function). If a synchronous model is utilized, SEH exceptions are not caught by the try{}catch(){} construction. Asynchronous model was the default in previous versions of Visual C++, but the synchronous one is the default in the newer versions.
Mas info: http://www.codeproject.com/Articles/207464/Exception-Handling-in-Visual-Cplusplus
https://msdn.microsoft.com/en-us/library/1deeycx5(v=vs.80).aspx