Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Actualización: noviembre 2007
Las instrucciones siguientes ayudan a garantizar que sus excepciones personalizadas están correctamente diseñadas.
Evite las jerarquías de excepciones profundas.
Para obtener más información, vea Tipos y espacios de nombres.
Derive las excepciones de System.Exception o de una de las demás excepciones de base comunes.
Observe que Capturar y generar tipos de excepción estándar incluye una instrucción que especifica que no debería derivar excepciones personalizadas de ApplicationException.
Finalice los nombres de clases de excepción con el sufijo Exception.
Las convenciones de nomenclatura coherentes ayudan a suavizar la curva de aprendizaje para las nuevas bibliotecas.
Haga que las excepciones sean serializables. Una excepción debe ser serializable para funcionar correctamente atravesando dominios de aplicación y límites de interacción remota.
Para obtener información sobre cómo hacer que un tipo sea serializable, vea Serialización.
Proporcione (al menos) los siguientes constructores comunes en todas las excepciones. Asegúrese de que los nombres y tipos de los parámetros son iguales que los utilizados en el ejemplo de código siguiente.
Public Class NewException
Inherits BaseException
Implements ISerializable
Public Sub New()
MyBase.New()
' Add implementation.
End Sub
Public Sub New(ByVal message As String)
MyBase.New()
' Add implementation.
End Sub
Public Sub New(ByVal message As String, ByVal inner As Exception)
MyBase.New()
' Add implementation.
End Sub
' This constructor is needed for serialization.
Protected Sub New(ByVal info As SerializationInfo, ByVal context As StreamingContext)
MyBase.New()
' Add implementation.
End Sub
End Class
public class NewException : BaseException, ISerializable
{
public NewException()
{
// Add implementation.
}
public NewException(string message)
{
// Add implementation.
}
public NewException(string message, Exception inner)
{
// Add implementation.
}
// This constructor is needed for serialization.
protected NewException(SerializationInfo info, StreamingContext context)
{
// Add implementation.
}
}
Considere la posibilidad de proporcionar propiedades de excepción para tener el acceso mediante programación a información adicional (además de la cadena del mensaje) relativa a la excepción.
Portions Copyright 2005 Microsoft Corporation. Reservados todos los derechos.
Portions Copyright Addison-Wesley Corporation. Reservados todos los derechos.
Para obtener más información sobre las directrices de diseño, consulte el libro titulado "Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries" de Krzysztof Cwalina y Brad Abrams, publicado por Addison-Wesley, 2005.
Vea también
Conceptos
Elegir el tipo correcto de la excepción que se va a producir
Otros recursos
Instrucciones de diseño para desarrollar bibliotecas de clases