Kotlin: exception de documento lanzada por un método de interfaz

Como Kotlin no ha verificado la exception, ¿cuál es la forma correcta de documentar la exception esperada por un método de interfaz? ¿Debo documentarlo en la interfaz o en la class de implementación (solo si el método concreto realmente lo arroja)?

Si está documentado, entonces siempre en la interfaz Javadoc. Porque esto es contra lo que los clientes progtwign (en un mundo ideal). Si desea documentarlos, por ejemplo, se debate en este hilo: ¿Deberían los methods que lanzan RuntimeException indicarlo en la firma del método?

Oracle recomienda:

"Si es tan bueno documentar la API de un método, incluidas las excepciones que puede arrojar, ¿por qué no especificar excepciones de time de ejecución también?" Las excepciones de time de ejecución representan problemas que son el resultado de un problema de progtwigción y, como tal, no se puede esperar razonablemente que el código del cliente API se recupere de ellos o que los maneje de ninguna manera. Dichos problemas incluyen excepciones aritméticas, como dividir por cero; excepciones de puntero, como intentar acceder a un object a través de una reference nula; e indexar excepciones, como intentar acceder a un elemento de matriz a través de un índice que es demasiado grande o demasiado pequeño. Las excepciones en time de ejecución pueden ocurrir en cualquier parte de un progtwig, y ​​en una típica pueden ser muy numerosas. Tener que agregar excepciones de time de ejecución en cada statement de método networkinguciría la claridad de un progtwig.

Entonces, si la información es útil para un cliente, sí debe estar documentada (es decir, si el cliente puede manejarla, por ejemplo, IOException ). Para las excepciones "normales" de time de ejecución, como IllegalArgumentException yo diría "no", no lo documente.

  • Kotlin: Cantidades masivas de ConsPStack, ¿cómo puedo evitar?
  • Dagger 2 no genera la class de componente (Android, Kotlin)
  • ¿Convertir mi proyecto de estudio andorid existente a kotlin?
  • android - Retrofit call void con Kotlin
  • ¿Puedo actualizar un object inmutable profundamente nested sin tomar conciencia de su context?
  • Falló Kotlin Kapt: solo ve las fonts de api de Android de nivel 1
  • Cómo get / poner Kotlin Inner Map o Mapa de map
  • Convertir matriz en list en Kotlin
  • DoubleClick utiliza Kotlin programáticamente frente a la emisión val no se puede reasignar
  • El nombre de la propiedad privada no coincide con la expresión regular
  • Fábrica configurable en Kotlin para JavaScript