Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di MatCap83
    Registrato dal
    Jun 2005
    residenza
    Firenze
    Messaggi
    1,319

    [Java] Chiarimento su gestione Eccezioni

    Ciao a tutti, ho ripreso "in mano" Java da poche settimane, dopo qualche anno di pausa con la fine dell'università, e vorrei fare una domanda a persone più esperte di me. Premetto che ho cercato già su google ma ho trovato tanti (troppi!) documenti che mi hanno creato più confusione che altro . Ci sono 2 classi: Error e Exception. Quest'ultima ha a sua volta le due sottoclassi RuntimeException e IOException. Queste possono essere viste anche come:

    - eccezioni controllate (checked): classe IOException. Possono verificarsi indipendentemente dalle scelte del programmatore, per esempio un errore nella lettura di un file.

    - eccezioni non controllate (unchecked): classi RuntimeException e Error. Possono verificarsi indipendentemente dalla scelte del client, e possono invece dipendere dalla realizzazione di codice poco robusto, come ad esempio eccezioni NullPointerException (colpa del programmatore).

    Dico bene?? Adesso viene la domanda. Rispetto a questi 2 gruppi di eccezioni, nella scrittura di software è bene gestire con try/catch solo le eccezioni controllate? Ignorando ad esempio ArithmeticException (sottoclasse di RuntimeException), perché teoricamente il codice dovrebbe avere i controlli opportuni ?

    Grazie
    "Nessuno mi ha visto farlo, e non puoi provarlo in nessun modo!" (Bart Simpson)

    >>> www.ombresulweb.com <<<

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Hai sbagliato su IOException: essa è una delle tante sottoclassi di Exception, ma non ha niente di speciale.

    Le eccezioni controllate sono tutte le Exception che non sono RuntimeException.

    Per la seconda, si, dovresti catturare eventualmente le eccezioni controllate,le altre dovrebbero essere evitate a priori: ArithmeticException viene lanciato ad esempio se dividi per zero, situazione che tu dovresti non creare.

  3. #3
    Utente di HTML.it L'avatar di MatCap83
    Registrato dal
    Jun 2005
    residenza
    Firenze
    Messaggi
    1,319
    Originariamente inviato da Kaamos
    Hai sbagliato su IOException: essa è una delle tante sottoclassi di Exception, ma non ha niente di speciale.

    Le eccezioni controllate sono tutte le Exception che non sono RuntimeException.

    Per la seconda, si, dovresti catturare eventualmente le eccezioni controllate,le altre dovrebbero essere evitate a priori: ArithmeticException viene lanciato ad esempio se dividi per zero, situazione che tu dovresti non creare.
    Grazie, credo di aver capito ora, e ho trovato un documento di mokabyte chiaro (anche se è del 2004):

    http://www.mokabyte.it/2004/06/jstruts-6.htm

    In particolare c'è scritto: "Le eccezioni che discendono da RuntimeException possono essere gestite allo stesso modo di quelle checked ma non vi è l'obbligo di farlo[...]. Per le eccezioni di tipo checked questa gestione è obbligatoria, ovvero il compilatore non compilerà con successo la classe se il codice che può generare eccezione non è inserito all'interno di un blocco try/catch , a meno che il metodo stesso non dichiari che la gestione della eccezione è delegata al metodo chiamante."
    "Nessuno mi ha visto farlo, e non puoi provarlo in nessun modo!" (Bart Simpson)

    >>> www.ombresulweb.com <<<

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Originariamente inviato da MatCap83
    Grazie, credo di aver capito ora, e ho trovato un documento di mokabyte chiaro (anche se è del 2004):

    http://www.mokabyte.it/2004/06/jstruts-6.htm

    In particolare c'è scritto: "Le eccezioni che discendono da RuntimeException possono essere gestite allo stesso modo di quelle checked ma non vi è l'obbligo di farlo[...]. Per le eccezioni di tipo checked questa gestione è obbligatoria, ovvero il compilatore non compilerà con successo la classe se il codice che può generare eccezione non è inserito all'interno di un blocco try/catch , a meno che il metodo stesso non dichiari che la gestione della eccezione è delegata al metodo chiamante."
    Tranquillo anche se e' vecchio, non e' cambiato niente.

  5. #5
    Utente di HTML.it L'avatar di MatCap83
    Registrato dal
    Jun 2005
    residenza
    Firenze
    Messaggi
    1,319
    Originariamente inviato da Kaamos
    Tranquillo anche se e' vecchio, non e' cambiato niente.
    Ok grazie!!
    "Nessuno mi ha visto farlo, e non puoi provarlo in nessun modo!" (Bart Simpson)

    >>> www.ombresulweb.com <<<

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.