Puo generarsi un eccezione in fase di esecuzione, che il compilatore non la rileva in fase di compilazione?
Puo generarsi un eccezione in fase di esecuzione, che il compilatore non la rileva in fase di compilazione?
seconda domanda: ho fatto una println sul getMessage() dell'eccezione e mi viene scritto null. Può essere un valore di ritorno che ho messo io?
certamente sì: tipico esempio è una divisione per 0.
<´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
"The answer to your question is: welcome to tomorrow"
Se non erro, tutte le eccezioni vengono generate in fase di esecuzione.
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
Vero, ma certe vengono notificate in fase di compilazione (ed il codice non compila affatto): e sono tutte quelle non gestite nel codice, ma dichiarate esplicitamente nel metodo (con throws).Originariamente inviato da alka
Se non erro, tutte le eccezioni vengono generate in fase di esecuzione.
<´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
"The answer to your question is: welcome to tomorrow"
Ok, ma quelle non sono eccezioni, ma...errori di compilazione.Originariamente inviato da Andrea1979
Vero, ma certe vengono notificate in fase di compilazione (ed il codice non compila affatto): e sono tutte quelle non gestite nel codice, ma dichiarate esplicitamente nel metodo (con throws).
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
Eh, la fame...
<´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
"The answer to your question is: welcome to tomorrow"
Si ma probabilmente lui intendeva se si possono verificare eccezioni che non vengono gestite da parti specifiche di codice, ad esempio se cerchi di scrivere su un file e non gestisci un'eccezione con un try catch ad esempio il compilatore ti segnala che ti sei dimenticato di gestire appunto l'eccezione in questione.Originariamente inviato da alka
Ok, ma quelle non sono eccezioni, ma...errori di compilazione.
Ciao.
Oltre quanto detto appena sopra, ci sono eccezioni lievi ed eccezioni gravi: la differenza sta nel fatto che le eccezioni gravi, se non vengono gestite, provocano un errore nella compilazione, mentre quelle lievi no.
Le eccezioni lievi sono quelle che derivano da RuntimeException. Un tipico caso è la NumberFormatException. Esempio:
Questo codice (senza alcun blocco try/catch, né throws) compilerà senza problemi.codice:public void mioMetodo() { String numero = "19"; int numero = Integer.parseInt( numero ); }
Premetto che io, per sicurezza, preferisco catturare tutte le eccezioni (se si chiamano eccezioni ci sarà un motivo... ). In rari casi evito di farlo (ad esempio, se devo leggere un numero da una base di dati dove questo numero è in chiave e mi viene restituito in una stringa).
Ciao.
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza