Il linguaggio Java è stato progettato per gestire gli errori e altri eventi imprevisti utilizzando un concetto eccezione. Quando si verifica un errore , un oggetto eccezione viene generato e passato ( o torta) lo stack di chiamate finché non trova un metodo progettato per gestire ( o prendere ) che eccezione. Java viene fornito con decine di oggetti eccezione , ma i programmatori possono anche creare il proprio . Definizione di una consuetudine Classe Exception  
 eccezioni personalizzate sono definiti nello stesso modo di qualsiasi altra classe Java . L'unica regola importante è che un'eccezione deve estendere la classe Exception in biblioteca java.lang . Questo è fatto nello stesso modo che qualsiasi altra classe estende un'altra . Un esempio di una definita dall'utente eccezione sarebbe : 
 classe 
 MyException extends Exception { } 
 
 
 
 È possibile aggiungere i propri metodi e costruttori per la classe di eccezione in modo da personalizzare ai tuoi scopi , ma semplicemente estendendo la classe base si ottengono i costruttori ei metodi di eccezioni standard, tra cui la possibilità di definire i messaggi di errore . 
 generando un'eccezione personalizzata 
 < p > per usare il tuo eccezione personalizzata , dovete buttare in qualche parte del programma , lo stesso di qualsiasi altra eccezione . Ad esempio, l' esempio seguente mostra come generare un'eccezione per impedire un metodo di divisione per zero : 
 
 doppia divide pubblico ( doppio dividendo , doppio divisore) getta MyException { 
 
 se ( divisore == 0 ) throw new MyException ( " Divisione per zero tentato !") ; 
 
 ritorno dividendo /divisore ; 
 
 } 
 
 il problema di verificare se il divisore è uguale a zero . Se lo è , allora un nuovo oggetto MyException viene creata e generata con un messaggio di errore appropriato . Qualunque parte del programma ha chiamato la funzione "divario " sarebbe allora la responsabilità di decidere come affrontare l'eccezione . 
 Perché utilizzare le eccezioni ? 
 
 Errore controllo è una parte fondamentale di qualsiasi programma . Anche se il lavoro del programmatore è perfetto, l'input dall'utente , il file system locale e Internet è raramente, se mai , perfetto, per cui i programmi devono essere preparati ad affrontare i problemi. Spesso, tuttavia , la parte del codice che trova il problema non è la parte del codice più adatto per affrontare il problema . Una funzione che divide un paragrafo di testo in parole dovrebbe , idealmente , non devono preoccuparsi se un paragrafo vuoto è un errore che richiede di chiudere il programma , uno strano evento che dovrebbe essere segnalato all'utente , o irrilevanti . Le eccezioni permettono di segnalare il problema in altre parti del programma che sono più adatto a correggerlo . 
 Perché utilizzare le eccezioni personalizzate ? 
 
 Java viene fornito con decine di eccezioni classi predefinite , tuttavia, a volte aiuta ad avere un insieme di eccezioni che meglio si adattano il problema in esame , in modo che il programma può più rapidamente reagire ad essi . Ad esempio , piuttosto che di Java generico " InvalidArugmentException , " la parte del codice responsabile per il recupero da errori può essere necessario conoscere ulteriori dettagli sul problema . Ciò potrebbe essere fatto dividendo l'eccezione in personalizzato " UnexpectedNullArgumentException " e " OutOfRangeException . "