Eccezioni checked e unchecked in java

Il sistema di gestione delle eccezioni in java (exception handling) prevede la loro suddivisione in due tipologie così sintetizzabili:

  1. checked: esprimono eccezioni che si riferiscono a condizioni recuperabili e che quindi possono essere gestite dal metodo chiamante;
  2. unchecked: esprimono condizioni non recuperabili, generalmente dovute ad errori di programmazione e quindi non gestibili dal metodo chiamante.

Esempio di eccezioni java del primo tipo sono IOException e FileNotFoundException. Il client è in grado di gestirli ad esempio prospettandole all’utente che può quindi intervenire. Per creare una eccezione di questo tipo è necessario estendere java.lang.Exception.

Per questo tipo di eccezioni il compilatore richiede la loro gestione o attraverso l’utilizzo di un blocco try...catch oppure differendo la gestione al metodo chiamante attraverso la clausola trows.

Esempi di eccezioni del secondo tipo sono, invece, NullPointerException o IndexOutOfBoundsException. Il client non può fare nulla per gestire l’eccezione  che può essere eliminata solamente programmaticamente, ad esempio testando i valori nulli prima di utilizzarli. Per creare una eccezione unchecked è necessario estendere java.lang.RuntimeException.

Per queste tipologie di eccezione il compilatore non ne richiede la gestione, l’utilizzo del blocco try...catch è infatti opzionale.

© 2018 Java Boss - Theme by HappyThemes