Un'eccezione si verifica quando una situazione anomala ( ad esempio un errore o un problema ), si verifica che un metodo è in grado di gestire. Il metodo termina per "lanciare" una eccezione , comunicando alla funzione chiamante che il metodo è terminato in modo anomalo , e passando indietro informazioni sulle condizioni della situazione. Questa informazione è incapsulato nell'oggetto eccezione generata indietro alla funzione chiamante . Base Eccezioni
Java offre tre tipi di base di eccezioni: . Eccezioni controllate , gli errori e le eccezioni di runtime
Eccezioni controllate sono gettati per problemi attesi che possono ragionevolmente essere gestiti , ad esempio una richiesta per un file inesistente . Eccezioni controllate devono essere catturati e sia gestito dalla funzione chiamante o gettati fino a una funzione vocazione più alta . Questo requisito viene indicato come il "Catch o Specifica dei requisiti. " Tutte le eccezioni controllate sono derivate dalla classe Exception .
Vengono generati errori quando un grave errore esterno per l'applicazione verifica che non possono essere ragionevolmente trattata , come ad esempio di errori di overflow di memoria e stack. Tutti gli errori sono derivati dalla classe Error .
Eccezioni runtime vengono generate quando si verifica un errore grave all'interno dell'applicazione che non possono essere ragionevolmente trattata , come argomenti illegali e parametri. Tutte le eccezioni di runtime sono derivate dalla classe RuntimeException .
Errori e le eccezioni di runtime sono due eccezioni unchecked . Eccezioni unchecked non sono soggetti all'obbligo di cattura o di specificare perché il recupero aggraziato da questi tipi di eccezioni, non è previsto.
Classi di eccezioni , di errore e di RuntimeException sono tutti derivati dalla classe Throwable . Da Throwable , queste classi ereditano funzioni utili per la segnalazione e il debug degli errori . Per esempio , getMessage restituisce il messaggio di errore leggibile associato con l'eccezione , e printStackTrace stampa informazioni dettagliate di un ruscello o writer specificato. È possibile creare le proprie eccezioni specializzate ereditando da Exception , RuntimeException o loro sottoclassi .
Specialità eccezioni
Java offre numerose classi di eccezioni derivate dalle classi di base . Eccezioni specializzati possono offrire funzioni aggiuntive per il recupero di informazioni specifiche e dettagliate per la situazione . Ad esempio, le funzioni di connettività di database Java possono lanciare una SQLException . Questa eccezione specializzata ha funzioni per il recupero di informazioni circa lo stato SQL e fornitore specifico codice di errore relativo alla eccezione. La cattura e la gestione delle eccezioni specifiche permette di accedere a una serie di informazioni aggiuntive non disponibili se solo si cattura e gestire le eccezioni genitore- classe generica