Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    67

    Gestione eccezioni java...

    allora le eccezioni in java si gestiscono tramite le parole try catch finally trow e trows...qual è la differenza tra trows-trow e try-catch-finaly??

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    67

    Re: Gestione eccezioni java...

    Originariamente inviato da c_nicola
    allora le eccezioni in java si gestiscono tramite le parole try catch finally trow e trows...qual è la differenza tra trows-trow e try-catch-finaly??
    mmm di guide ne ho lette molte...cercavo qualcuno che me lo spiegasse con poche parole e molta sostanza...

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    68
    try-catch-finally:
    codice:
    try {
        //qui testi del codice che può sollevare eccezzioni
    } catch (TipoEccezione e) {
        //qui catturi le eccezioni di tipo "TipoEccezione"
    } finally {
        //questo blocco di codice viene sempre eseguito
    }
    throw:
    codice:
    throw new Exception(); //lanci un eccezione
    throws:
    codice:
    public void funzione() throws Eccezione1, Eccezione2 { 
        //Indichi che il metodo "funzione" risolleva due tipi di eccezione, rispettivamente Eccezione1 e Eccezione2
    }
    Il metodo throws in genere consente di evitare il classico blocco try-catch-finally all'interno del corpo del metodo, in quanto l'eccezione non gestita verrà risollevata alla funzione che invocherà il metodo stesso.

    P.S. Le "poche parole" non vanno di pari passo con la "molta sostanza" quindi ti consiglio di vedertela una guida perchè se come tu dici ne hai già lette diverse non puoi ignorare il significato di questi concetti basilari dell'Exception Handling.


  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    67
    Originariamente inviato da M@P
    try-catch-finally:
    codice:
    try {
        //qui testi del codice che può sollevare eccezzioni
    } catch (TipoEccezione e) {
        //qui catturi le eccezioni di tipo "TipoEccezione"
    } finally {
        //questo blocco di codice viene sempre eseguito
    }
    throw:
    codice:
    throw new Exception(); //lanci un eccezione
    throws:
    codice:
    public void funzione() throws Eccezione1, Eccezione2 { 
        //Indichi che il metodo "funzione" risolleva due tipi di eccezione, rispettivamente Eccezione1 e Eccezione2
    }
    Il metodo throws in genere consente di evitare il classico blocco try-catch-finally all'interno del corpo del metodo, in quanto l'eccezione non gestita verrà risollevata alla funzione che invocherà il metodo stesso.

    P.S. Le "poche parole" non vanno di pari passo con la "molta sostanza" quindi ti consiglio di vedertela una guida perchè se come tu dici ne hai già lette diverse non puoi ignorare il significato di questi concetti basilari dell'Exception Handling.

    Quindi da come ho capito posso usare Trow e trows al posto di try catch finally?

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da c_nicola
    Quindi da come ho capito posso usare Trow e trows al posto di try catch finally?
    No, dipende ...

    throw serve per "lanciare", throws per "dichiarare" (il senso del dichiarare è per le eccezioni "checked") mentre try/catch (con o senza finally) serve per "provare" a fare qualcosa potendo catturare la/e eccezione/i.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    67
    Originariamente inviato da andbin
    No, dipende ...

    throw serve per "lanciare", throws per "dichiarare" (il senso del dichiarare è per le eccezioni "checked") mentre try/catch (con o senza finally) serve per "provare" a fare qualcosa potendo catturare la/e eccezione/i.
    Allora pe quanto riguarda try catch io ho visto sempre il classico esempio della divisione per 0...quella non è un'eccezione gestibile anche con throw e throws? Non capisco quando si una l'uno e quando l'altro...

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da c_nicola
    Allora pe quanto riguarda try catch io ho visto sempre il classico esempio della divisione per 0...quella non è un'eccezione gestibile anche con throw e throws? Non capisco quando si una l'uno e quando l'altro...
    Ma sono cose diverse!! Ripeto: che throw è per lanciare. Certe eccezioni possono essere lanciate direttamente dalla JVM ma ovviamente anche il programmatore può definire eccezioni e lanciarle esplicitamente. Questa è una cosa.

    Altra cosa è dichiarare, con throws, che un metodo può lanciare certe eccezioni. E il senso del dichiarare è per le eccezioni "checked" piuttosto che per le "unchecked".
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    67
    Originariamente inviato da andbin
    Ma sono cose diverse!! Ripeto: che throw è per lanciare. Certe eccezioni possono essere lanciate direttamente dalla JVM ma ovviamente anche il programmatore può definire eccezioni e lanciarle esplicitamente. Questa è una cosa.

    Altra cosa è dichiarare, con throws, che un metodo può lanciare certe eccezioni. E il senso del dichiarare è per le eccezioni "checked" piuttosto che per le "unchecked".
    E sono cose diverse...e la differenza qual è? Il catch serve per "catturare" delle eccezioni che sicuramente ci saranno?

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da c_nicola
    E sono cose diverse...e la differenza qual è? Il catch serve per "catturare" delle eccezioni che sicuramente ci saranno?
    Partiamo dal throws e dalla differenza checked/unchecked. Per le eccezioni checked vale la regola che si dice "handle or declare". Il programmatore non può "ignorare" una eccezione checked, deve fare "qualcosa" nel codice che scrive, che sia gestire (=catturare e fare di conseguenza) o dichiarare la eccezione ma qualcosa deve fare.

    Un metodo A invoca un metodo B che dichiara con throws di poter lanciare IOException (checked). Chi scrive il metodo A deve fare qualcosa con questa IOException. Può mettere in A un try/catch, nel try invoca B e nel catch gestisce la eccezione (stampa messaggio, log, altro ecc.... quello che vuole).

    Oppure a sua volta dichiarare che A può lanciare IOException. Questo vuol dire che IOException può uscire da B e può anche uscire da A. E in sostanza la regola del gestire-o-dichiarare semplicemente si è spostata più "sopra" perché chi a sua volta invocherà A si dovrà porre la stessa questione: gestisco o dichiaro.

    Il throws serve appunto per "forzare" il fatto di dover prendere in considerazione una eccezione checked.

    Per quelle unchecked non c'è questa regola: non si è obbligati né a dichiararle, né a gestirle.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.