Estoy tratando de averiguar cuál sería la forma correcta de excepciones para lanzar para una biblioteca que estoy escribiendo. Un ejemplo de lo que necesito manejar es registrar a un usuario en una estación. Lo hacen escaneando una insignia. cosas posibles que podrían salir mal incluyen:Cuándo usar excepciones personalizadas contra excepciones existentes frente a excepciones genéricas
- Su insignia está desactivado
- Ellos no tienen permiso para trabajar en esta estación
- La insignia de escaneado no existe en el sistema
- que ya están conectado a otra estación a otra parte
- la base de datos se ha reducido error
- interno DB (que sucede a veces si la placa no consiguió configurado correctamente)
Una aplicación que use esta biblioteca tendrá que manejar estas excepciones de una forma u otra. Es posible que decidan simplemente decir "Error" o que quieran darle al usuario más información útil. ¿Cuál es la mejor práctica en esta situación? Crear una excepción personalizada para cada posibilidad? Use las excepciones existentes? Use Exception y pase el motivo (throw new Exception("Badge is deactivated.");
)? Estoy pensando que es una especie de combinación de los dos primeros, utilizando las excepciones existentes cuando corresponda y creando nuevas cuando sea necesario (y agrupando excepciones donde tenga sentido). pasar