Después de pasar a través de algunos enlaces en el manejo de excepciones (1, 2 y 3), sé que los programas en C++ puede lanzar casi cualquier cosa como excepciones (int
, char*
, string
, exception
clase). Sé que std::exception
es la clase base para las excepciones estándar lanzadas por el programa. Sin embargo, yo estoy tratando de diseñar un try
... catch
bloque como tal:¿Qué tipo de excepción debo arrojar?
try
{
MyFunc();
}
catch (certain exceptions)
{
// deal with the exception accordingly
}
catch (the rest of the exceptions)
{
// deal with these accordingly
}
mientras MyFunc()
contiene lo siguiente:
void MyFunc()
{
...
if (certain condition is true) throw exception;
...
}
El problema es que en esa parte del MyFunc
función, me No estoy seguro de qué tipo de excepción debería arrojar. Para mantener el código limpio implementando mi propia clase de excepciones, no tengo idea de cuál sería una buena forma de implementar dicha clase de excepciones.
haría con impulso ser una buena idea a pesar de toda mi ISN proyecto ¿Todavía no usas bibliotecas de impulso? – stanigator
Probablemente no. La jerarquía anterior puede usarse en su lugar y modificarse según sus necesidades. He tenido un éxito moderado usando dichos niveles de eexception en grandes proyectos. Además, puede haber problemas menores de portabilidad si está utilizando la compilación cruzada usando boost ya que está muy templado. Algunos compiladores pueden no cumplir con el estándar C++. – Abhay