Nwlapcug.com


Perché ci sono eccezioni cattive numero in Java?



Eccezioni possono causare programmi Java per dormire, ma se usato correttamente, consentono inoltre ai programmatori di creare applicazioni che possono far fronte ad eventi imprevisti. Numero eccezioni si verificano spesso quando programmi tentano di analizzare i numeri, stringhe di testo di conversione in valori numerici. Se un programma Java utilizza un metodo in cui un numero non è del tipo previsto, potrebbe generare un'eccezione di formato di numero. Da eccezioni di comprensione, si può imparare a creare programmi che forniscono funzionalità affidabile.

Tipi di eccezione

Programmi Java possono generare diversi tipi di eccezione. L'eccezione del formato di numero è l'eccezione più comune numerica. Un'eccezione di runtime, si estende la classe di eccezione di argomento illegale. Normalmente questa eccezione si verifica quando si utilizza un metodo per tentare di analizzare una stringa come un numero, ma il contenuto della stringa non è un numero del tipo corretto. Perché è un'eccezione non controllata, possono compilare i programmi senza il tuo ambiente di sviluppo integrato avvisa circa il possibile errore. L'eccezione del formato di numero si verifica solo se un programma passa input non corretto a un metodo, in modo che si può solo scoprire quando viene eseguita l'applicazione.

Cause

Le classi di wrapper Java lingua forniscono rappresentazioni di oggetti dei tipi primitivi numeri, tra cui integer, float e double. Utilizzando queste classi, programmi possono analizzare i valori di stringa come tipi numerici, come segue:

Integer.parseInt("3");

Questo codice viene eseguito senza errori, perché il parametro di stringa passata contiene un valore numerico. Tuttavia, la seguente chiamata al metodo causa Java generare un'eccezione di formato di numero, perché la stringa non contiene un numero:

Integer.parseInt("r");

Il codice seguente provoca anche l'eccezione, perché anche se la stringa è un numero, non è un valore integer:

Integer.parseInt("3.5");

Tutti questi estratti di codice compilare ed eseguire, quindi il programmatore può solo diventare consapevole dell'errore in fase di esecuzione. I valori non sono normalmente forniti in modo esplicito, ma vengono letti da una fonte esterna o il valore della variabile.

Cattura

È possibile rilevare eccezioni di formato di numero se i programmi sono suscettibili di buttarli. Aggiungendo il numero codice di analisi di un blocco try, quindi fornendo un fermo nero dopo di esso, è possibile creare programmi che continueranno a funzionare anche se si verifica un'eccezione di formato di numero. Nell'esempio di codice riportato di seguito viene illustrato questa struttura:

try {
Integer.parseInt(numString);
}
catch(NumberFormatException numExc) {System.out.println(numExc.getMessage())};

La stringa di analisi in questo caso è rappresentata come un riferimento a una variabile, quindi il suo contenuto è sconosciuto. Se il contenuto della stringa non può essere analizzato come valore integer, il codice salta immediatamente al blocco catch, dove è possibile fornire elaborazione di alternativa.

Lancio

Così come intercettare eccezioni, gli sviluppatori possono creare programmi Java in cui essi generano eccezioni personalizzate. Si tratta di una tattica comune con unchecked eccezioni come formato di numero. Di seguito viene illustrato il codice modificato riportato di seguito:

catch (NumberFormatException numExc) {throw new BadNumberException();}

Questo consente ai programmatori di definire la propria classe di eccezione personalizzata, che può essere un tipo controllato, e di fornire una strategia di coping adatto per l'applicazione.