Pagina 3 di 3 primaprima 1 2 3
Visualizzazione dei risultati da 21 a 27 su 27
  1. #21
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da mark85_159622
    Allora e' cosi'. Giusto???
    Sì.
    E ti faccio una breve spiegazione sulle eccezioni. Sono di 2 tipi: "checked" e "unchecked". Le eccezioni checked devono sempre essere prese in considerazione, vale la regola che in inglese si dice "handle or declare": o le gestisci o le dichiari con throws.

    Visto che nel metodo che ho postato io, non catturo nulla e siccome il costruttore di FileOutputStream e il suo close() lanciano IOException, essa può uscire dal metodo ma sono obbligato a dichiararla con throws. E il metodo che invoca writeFile() a sua volta dovrà prenderla in considerazione, gestirla catturandola con catch o dichiararla a sua volta con throws per farla uscire dal metodo. E così via ....

    Per le eccezioni unchecked non si è obbligati né a gestirle né a dichiararle, insomma non c'è alcuna costrizione in tal senso.

    Chiaro ora?
    Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  2. #22
    Grazie per la spiegazione, mi puoi per favore dare un esempio di un eccezione unchecked?

    Perche' si utilizza il tuo metodo piuttosto quello che avevo scritto io.
    E' dovuto a qualche motivo perticolare?

  3. #23
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da mark85_159622
    Grazie per la spiegazione, mi puoi per favore dare un esempio di un eccezione unchecked?
    Le eccezioni checked sono tutte quelle che derivano da java.lang.Exception eccetto tutte quelle nel sottoramo java.lang.RuntimeException.

    codice:
    java.lang.Exception
      \
       java.io.IOException    (quindi checked)
    codice:
    java.lang.Exception
      \
       java.lang.RuntimeException
         \
          java.lang.NullPointerException   (quindi unchecked)
    Originariamente inviato da mark85_159622
    Perche' si utilizza il tuo metodo piuttosto quello che avevo scritto io.
    E' dovuto a qualche motivo perticolare?
    Perché innanzitutto come ti ho già detto, in Java non si dovrebbero ritornare dei codici di "status" per indicare errori .... ci sono le eccezioni, appunto.

    E il perché in writeFile() si dovrebbe far uscire la eccezione e non catturarla lì dentro, è anche semplice: che cosa fa quel metodo? Semplicemente, "stupidamente" scrive su file .... senza sapere null'altro e basta. Quel metodo potrebbe essere usato in una applicazione "console" ... o in una applicazione "grafica" con AWT/Swing ... o in una servlet in una web application.
    Non lo so io, non dovrebbe "saperlo" il metodo .... e non importa. Lascia che faccia il "suo" lavoro e se c'è qualche errore esso lancia al di fuori la eccezione. Sarà compito di qualche altra parte del codice, dove c'è maggiore "conoscenza" dell'ambiente e dell'interfacciamento verso l'utente a dover catturare la eccezione e presentarla come/dove ti pare.
    Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  4. #24
    Spiegazione chiara e precisa.

    Mi e' venuta in mente una cosa.

    Se io nella funzione che richiama WriteFile metto una try/catch di questo tipo:

    codice:
    try
    {
    WriteToFile(...);
    Function1(...);
    Function2(...);
    ecc...
    }
    catch( IOException)
    {
    //Gestione errore
    }
    Come faccio io nella gestione dell' errore a indicare la funzione che ha generato l'eccezione?
    Nell' esempio ce ne sono tre che possono generare una eccezione.
    C'e' qualcosa che mi permette di indicarla.

    ************************************************** ******

    Tornando un attimino al discorso di prima.
    Quale e' il valore di ritorno per funzioni come il WriteToFile.
    Void?

    Grazie

  5. #25
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da mark85_159622
    Come faccio io nella gestione dell' errore a indicare la funzione che ha generato l'eccezione?
    Di per sé, direttamente, no non puoi saperlo (e generalmente non importa "saperlo" programmaticamente!). Nella eccezione comunque c'è lo "stack trace", puoi stamparlo con:

    codice:
    catch (IOException e) {
        e.printStackTrace();
    }
    E questo tipicamente basta almeno per motivi di "logging". E se proprio vuoi fare "cose diverse" per ogni singolo metodo .... beh, nessuno ti vieta di fare try/catch per ogni metodo.

    Originariamente inviato da mark85_159622
    Quale e' il valore di ritorno per funzioni come il WriteToFile.
    Void?
    void (v minuscola).
    Esiste anche Void (V maiuscola) ma è un tipo reference che generalmente è poco utile e non certo in questo caso!
    Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  6. #26
    Thank you very much!!!

  7. #27
    RISOLTO!!!

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 © 2026 vBulletin Solutions, Inc. All rights reserved.