Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di MrX87
    Registrato dal
    Jun 2007
    Messaggi
    500

    Eccezioni con throws e try-catch

    Ciao a tutti, stavo studiando le eccezioni in java e in particolare le clausole throws e try-catch-finally. Volevo chiedere, per gestire una eccezione posso usare o la clausola throws in questo modo:
    codice:
    public String prova(int num) throws My_Exception {
    	  	if( num == 0)
    	  		throw new My_Exception();
    	  	else "OK";
    }
    oppure posso anche gestiore l'eccezione tramite i costrutti try-catch-finally:
    codice:
    public String prova(int num) {
    	  try {	
                    if( num == 0)
    	  		throw new My_Exception();
              }
    	  catch ( My_Exception e ) {
                    Syetem.out.println("Illegal number");
              }
    }
    questi 2 metodi sono equivalenti o c'è differenza??
    "Non può piovere per sempre" Il Corvo
    Forza Vigor!

  2. #2
    Ciao, la prima versione è corretta, tiri un eccezione dal tuo metodo che deve essere gestita da chi lo chiama, c'è anche un eccezione nelle librerie java per quel particolare caso cioè IllegalArgumentException.
    Nella seconda logghi il fatto che l'argomento 0 è sbagliato e il tuo metodo ritorna senza mai tirare eccezioni, non c'è bisogno di usare un try catch la riscriverei così
    codice:
    public String prova(int num) {	
        if( num == 0) {
            System.out.println("Illegal number.");
            return null;
        }
        // altrimenti continuo
    }
    La differenza tra un metodo che in caso di errore tira un eccezione e uno che ritorna un valore non valido (ad esempio null) è come chi chiama il metodo dovrà gestire questa situazione (in genere è più comodo controllare il null) ed il fatto che in un eccezione puoi includere delle informazioni su cosa è andato storto (cosa spesso utile).
    Cosa è meglio per te lo devi decidere caso per caso.

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.