Originariamente inviato da Luca1986
Potresti farmi un esempio di dichiarazione di eccezione che non sia runtime? perchè credo di non averle mai affrontate, e non ho nulla a riguardo sul libro di testo... (introduzione alla programmaz..)
Argomento che dovresti assolutamente affrontare quello delle eccezioni .... comunque esistono eccezioni "checked" e "unchecked". Quelle checked sono tutte quelle che estendono Exception ad esclusione del sottoramo RuntimeException.
"checked" vuol dire che la eccezione deve essere presa in considerazione, in un modo o nell'altro. Se un metodo A invoca un metodo B e B dichiara di lanciare una eccezione checked, allora A deve: o catturarla e gestirla in qualche modo oppure dichiarare a sua volta con il throws che lancia la eccezione (quindi può "uscire" fuori da A). O anche un mix, in certi casi è appropriato catturare la eccezione e poi rilanciarla fuori.
Le eccezioni "unchecked" non hanno questi vincoli: non sei obbligato a catturarle/gestirle e nemmeno a dichiararle con il throws (ovviamente puoi fare queste cose ... ma non c'è l'obbligo).

Originariamente inviato da Luca1986
Si potrei vedere la documentazione online in inglese... però se mi fai un es. in italiano preferirei.. poi vedi tu se combini... altrimenti domani vedo...
In che senso in italiano???

Se vuoi dichiarare una eccezione si mette dopo la ) di chiusura dei parametri un throws NomeEccezione (più eccezioni separate da virgola).

codice:
public void blabla() throws UnaEccezione, AltraEccezione {
    ...
}
Originariamente inviato da Luca1986
Ho corretto il "doppio frame" tuttavia continua a non generarmi niente solo l'errore di null...

Ho dimenticato qualcosa??
La riga in cui istanzi il Label e assegni a etic2 è "commentata" e quindi etic2 resta null. Ed è un errore perché l'add() appena seguente non accetta un null!

Originariamente inviato da Luca1986
i this nei panel sono "inutili" ?
Il 'this' generalmente è superfluo, quindi molti di quei 'this' che hai messo li puoi anche togliere (e sarebbe più pulito).

Un caso in cui servono è quando devi risolvere il problema dello "shadowing". Nel costruttore, solo indicare 'a' fa riferimento al parametro Archivio a, non alla variabile di istanza 'a'.
Questo perché il parametro che ha lo stesso nome "nasconde" la variabile di istanza.
Per accedere alla variabile di istanza nel costruttore devi appunto usare 'this.a', quindi è per forza necessario fare:

this.a = a;