c# - que - ¿Cuáles son algunas de las mejores prácticas para crear mi propia excepción personalizada?
manejo de excepciones en c# buenas practicas (5)
Creo que lo más importante para recordar cuando se trata de excepciones en cualquier nivel (hacer personalizado, lanzar, atrapar) es que las excepciones son solo para condiciones excepcionales.
En una continuación de una pregunta anterior sobre excepciones, ¿cuáles son las mejores prácticas para crear una excepción personalizada en .NET?
Más específicamente, ¿debería heredar de System.Exception, System.ApplicationException u otra excepción base?
En C # IDE, escriba ''excepción'' y presione TAB. Esto se ampliará para que comiences a escribir un nuevo tipo de excepción. Hay comentarios con enlaces a alguna discusión sobre prácticas de excepción.
Personalmente, soy un gran fan de crear muchas clases pequeñas, y eso se extiende a tipos de excepción. Por ejemplo, al escribir la clase Foo, puedo elegir entre:
-
throw new Exception("Bar happened in Foo");
-
throw new FooException("Bar happened");
-
throw new FooBarException();
dónde
class FooException : Exception
{
public FooException(string message) ...
}
y
class FooBarException : FooException
{
public FooBarException()
: base ("Bar happened")
{
}
}
Prefiero la tercera opción, porque la veo como una solución OO.
Hay un fragmento de código para eso. Usa eso. Además, verifique su análisis de código luego; el fragmento deja fuera uno de los constructores que debe implementar.
La excepción base de la que todas las demás excepciones heredan es System.Exception, y eso es lo que debe heredar, a menos que, por supuesto, tenga un uso para cosas como, por ejemplo, mensajes predeterminados de una excepción más específica.
Heredar de System.Exception
. System.ApplicationException
es inútil y las directrices de diseño dicen " No lanzar o derivar de System.ApplicationException
".
Ver http://blogs.msdn.com/kcwalina/archive/2006/06/23/644822.aspx