¿Existe alguna norma de mejores prácticas o de la industria para lanzar excepciones desde una API de kit de herramientas?Definición de excepciones que se pueden generar desde un kit de herramientas API
¿Deberían los métodos de cara al usuario capturar y cerrar Exception
en algún tipo de CustomException
para que los usuarios solo tengan que preocuparse de que CustomException
salga de la API?
¿O es la convención que simplemente dejen que los burbujas salgan?
Nos preocupamos por poder documentar todas las excepciones posibles que pueden arrojar nuestros métodos API. (Por ejemplo, si nuestro método API llama al Stream.Write()
, que arroja 4 o 5 excepciones, tendríamos que documentar todas esas, además de otras excepciones que podrían lanzar otros métodos).
Estábamos pensando en hacer algo como esto:
public void customerFacingApiMethod(){
try {
//api functionality goes here
} catch (Exception e) {
throw new CustomException(e);
}
}
+1 por no ocultar los detalles de la excepción interna – Oded
En principio, estamos de acuerdo. Pero, ¿qué sucede si una de las llamadas que hacemos cambia una excepción que arroja, ahora nuestra documentación no está sincronizada? O qué pasa si su documentación es incorrecta y hay una excepción lanzada que no está documentada. –
¿y qué pasa si qué pasa si? Puede que si muere usted mismo, el punto es que está destruyendo la característica más importante de las excepciones, que es que están tipadas. – Fred