|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
[JAVA] Chiarimento sugli override
Sto vedendo la questione dei metodi di override in Java. Il concetto di override, in generale, mi è chiaro. Quello che mi è un po' meno chiaro sono le restrizioni per quanto riguarda le eccezioni. Il mio libro, per le eccezioni sugli override, riporta: "Can reduce or eliminate. Must not throw new or broader checked exceptions"
Prendiamo per esempio: Codice:
import java.io.*;
class SuperClass
{
void doSomething () throws IOException { }
}
class SubClass extends SuperClass
{
....override di doSomething....
}
(1) void doSomething () { } (2) void doSomething () throws FileNotFoundException { } (3) void doSomething () throws FileNotFoundException, EOFException { } mentre questi sono errati: (4) void doSomething () throws Exception { } (5) void doSomething () throws InterruptedException { } Se ho capito bene, il perché (4) e (5) sono errati è dovuto al fatto che chi poi userà il metodo doSomething (ad esempio tramite un reference alla classe base) è solamente a conoscenza del fatto che l'eccezione "più larga" che può essere generata è la IOException. Se un override potesse lanciare una eccezione nuova o più "larga", il chiamante non saprebbe/potrebbe gestirla. Giusto? Ditemi se ho capito!
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Jan 2002
Città: Napoli
Messaggi: 1727
|
Quote:
Il senso è che chi chiama genericamente i metodi su SuperClass (usando quindi il polimorfismo) si dovrà gestire come catch l'eccezione IOException. Se fai un ovverride non mandando nessuna eccezione.. OK Se mandi IOException.. OK Se mandi un'eccezione che estende IOException.. OK (poi il catch gestirà la gestirà come IOException) Se mandi eccezioni diverse da IOException e che non sono sue sub-eccezioni, il catch non saprà gestirle
__________________
Se buttassimo in un cestino tutto ciò che in Italia non funziona cosa rimarrebbe? Il cestino. |
|
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Approfitto per chiedere una cosa: esiste da qualche parte in rete un reference con l'elenco/schema gerarchico di tutte le eccezioni dei package standard di Java??
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Jan 2002
Città: Napoli
Messaggi: 1727
|
Quote:
__________________
Se buttassimo in un cestino tutto ciò che in Italia non funziona cosa rimarrebbe? Il cestino. |
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
Quote:
nella documentazione javadoc per ogni package è disponibile la vista ad albero, basta che prendi quella del package java.lang: http://java.sun.com/j2se/1.4.2/docs/...kage-tree.html |
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:30.



















