Duplicar posibles:
throwing exceptions of objects on the stack, mem leak with new?C++ manera -El derecho a lanzar y atrapar excepciones
¿Tira excepciones en C++ con o sin el operador new
? Porque ambos arrojarían una excepción.
void KillUnicorns()
{
throw IllegalActionException();
}
int main()
{
try
{
KillUnicorns();
}
catch (IllegalActionException e)
{
// Handle exception
}
return 0;
}
Aunque el siguiente ejemplo podría perder memoria?
void KillUnicorns()
{
throw new IllegalActionException();
}
int main()
{
try
{
KillUnicorns();
}
catch (IllegalActionException* e)
{
// Handle exception
}
return 0;
}
¿Cuál es la forma correcta de lanzar excepciones en C++?
Una pregunta rápida asside. ¿'Const IllegalActionException & e' logra el mismo resultado que' IllegalActionException const & e'? Como se ve en el comentario de @Martin. – Kevin
@ Kevin: prefijar o enviar el cosnt a un tipo es una cuestión de estilo (puede ver ambos alrededor). El resultado es idéntico. –