1. Visió general
En aquest tutorial, veurem què provoca que Java llanci una instància de l'excepció _UndeclaredThrowableException.
En primer lloc, començarem amb una mica de teoria. Després, intentarem entendre millor la naturalesa d’aquesta excepció amb dos exemples del món real.
2. El UndeclaredThrowableException
Teòricament parlant, Java llançarà una instància de UndeclaredThrowableException quan intentem llançar un no declarat excepció comprovada . És a dir, no vam declarar l'excepció marcada a la clàusula _throws _, però vam llançar aquesta excepció al cos del mètode.
react-native-esquelet
Es podria argumentar que això és impossible, ja que el compilador Java ho impedeix amb un error de compilació. Per exemple, si intentem compilar:
1
2
3
public
void
undeclared() {
throw
new
IOException();
}
El compilador Java falla amb el missatge:
1
java: unreported exception java.io.IOException; must be caught or declared to be thrown
javascript valida l'adreça IP
** Tot i que no es poden produir excepcions marcades no declarades en temps de compilació, encara és possible en temps d'execució. ** Per exemple, considerem un servidor intermediari en temps d'execució que intercepti un mètode que no inclogui cap excepció:
1
2
3
public
void
save(Object data) {
// omitted
}
** Si el propi servidor intermediari genera una excepció marcada, des de la perspectiva de la persona que truca, el mètode _save _ genera aquesta excepció marcada. ** És probable que la persona que truca no sàpiga res d'aquest servidor intermediari i culparà el _salva _ d'aquesta excepció.
** En aquestes circumstàncies, Java embolicarà l'excepció verificada real dins d'una _UndeclaredThrowableException _ i llançarà la _UndeclaredThrowableException _ al seu lloc. ** Val a dir que la _UndeclaredThrowableException _itself és una excepció sense verificar.
Ara que ja coneixem prou la teoria, vegem alguns exemples del món real.
#java #spring
feedproxy.google.com
Quan Java llança UndeclaredThrowableException?
Veurem què provoca que Java llanci una instància de l'excepció _UndeclaredThrowableException.