Estoy escribiendo algunos datos de código de acceso y quiero verificar los estados de datos potencialmente "inválidos" en la base de datos. Por ejemplo, estoy devolviendo un widget de la base de datos y solo espero uno. Si obtengo dos, quiero lanzar una excepción. Aunque la integridad referencial debería evitar que esto ocurra, no quiero depender de que los DBAs nunca cambien el esquema (para aclarar esto, si se elimina la restricción de la clave primaria y me atrapan, quiero romper de forma rápida y clara).¿Qué excepción .NET arrojar para el estado de base de datos no válida?
Me gustaría utilizar System.IO.InvalidDataException, excepto que no estoy tratando con una secuencia de archivos por lo que sería engañoso. Terminé yendo con una excepción de aplicación genérica. Alguien tiene una mejor idea?
Sí, lo usaría para cargar datos de un archivo. Estoy de acuerdo con su lógica. Voy a seguir adelante y usar InvalidDataException. – jslatts
Esta es probablemente la clase de excepción existente más adecuada. En mi humilde opinión, en mi humilde opinión, a pesar del argumento del flujo de datos de @Jon Skeet, lanzo una excepción desde el espacio de nombres 'System.IO' cuando haces cosas relacionadas con 'System.Data'. (Por supuesto, el significado concreto de los espacios de nombres no debe sobreestimarse, pero todavía transmite un mensaje sutil de que podría no ser * bastante * lo correcto arrojar). Creo que en este caso, proporcionar una clase de excepción personalizada sería estar justificado – stakx
Personalmente Im en contra de arrojar excepciones de marco nativo de código no de marco porque las solicitudes de soporte pueden no dirigirse correctamente. Quizás una subclase llamada ApplicationInvalidDataException sería apropiada? –