Forse ho capito.
Cerco di riassumere sommariamente i concetti:
- le eccezioni vanno gestite dove vengono invocati i metodi e vanno sollevate nel metodo stesso (secondo esempio fatto prima).
- quando si crea un oggetto l'eccezione va gestita (blocco try-catch) nel costruttore
- la parola throws sta ad indicare che in quel metodo sarà lanciata (throw) una eccezione ma sarà gestita (blocco try-catch) altrove (nel metodo che chiama il metodo in questione - es. nel main)
- SOLO nel caso di eccezioni unchecked (tutto le sottoclassi di RuntimeException) si può tranquillamente lanciare (throw) l'eccezione ma senza la necessità di gestirla (blocco try-catch) quindi non serve mettere throws.
Volendo il programmatore può decidere comunque di gestire l'eccezione e lo può fare liberamente nel metodo stesso, quindi con blocco try-catch, oppure indicando throws e inserendo il blocco try-catch altrove (nel metodo che chiama il metodo in questione - es. nel main).
Spero di non aver sbagliato.![]()

Rispondi quotando


