Visualizzazione dei risultati da 1 a 5 su 5

Discussione: metodi ed eccezioni

  1. #1

    metodi ed eccezioni

    Un metodo può avere la clausola throws IOException?
    In una mia classe ho dichiarato il seguente metodo
    public boolean ricercaUtente () throws IOException{

    all'interno ci sono una serie di query che effettuano delle ricerche in
    un database
    }

    e' corretto? richiamando tale metodo nel Main tutto funziona, ma volevo sapere se logicamente è corretto o se ho avuto fortuna e funziona comunque!

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Da un punto di vista puramente di linguaggio è corretto.
    Se le operazioni che vengono svolte all'interno di quel metodo possono sollevare una IOException puoi fare due cose:

    1) Decidere di gestire l'eccezione;
    2) Decidere che della gestione dell'eccezione se ne deve occupare chi invoca il metodo.

    Nel primo caso, dovrai inserire le varie istruzioni del metodo all'interno di un blocco try/catch.
    Nel secondo caso, è sufficiente aggiungere nella firma del metodo la clausola throws IOException.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Grazie mille!!
    Io ho entrambe le cose. avendo infatti un'interazione con l'utente che deve inserire dei dati da tastiera, senza la IOException mi dà errore. a meno che questa porzione di interazione con l'utente io non la sposti nel Main...

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    613
    Originariamente inviato da missjava
    Grazie mille!!
    Io ho entrambe le cose. avendo infatti un'interazione con l'utente che deve inserire dei dati da tastiera, senza la IOException mi dà errore. a meno che questa porzione di interazione con l'utente io non la sposti nel Main...
    Concettualmente è errato fare entrambe le cose, in qualche modo l'eventuale eccezione dovrebbe essere catturata sfruttando il costrutto try-catch. La clausola throws serve per delegare la gestione dell'eccezione al metodo chiamante, ma non si dovrebbe fare "all'infinito".

  5. #5
    Mi sono espressa male nel mio commento precedente. La IOException la gestisce il metodo chiamante, nel mio codice il costrutto try catch gestisce altre eccezioni.

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.