Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 16 su 16

Discussione: [JAVA] Gestione errori

  1. #11
    Utente di HTML.it L'avatar di morphy79
    Registrato dal
    Jun 2004
    Messaggi
    1,568
    e ma non va lo stesso.... mi da un errore... in pratica non mi cattura l'eccezione :

    codice:
    public class ClassePrincipale {
    
    	public static void main(String[] args) {
    
    		MetodiConEccezioni classeConMetodi = new MetodiConEccezioni();		
    		try {
    			classeConMetodi.copia();
    		} catch (MyException te) {
    		   System.out.println( te );
    		}
    
    	}
    }
    
    
    
    
    public class MetodiConEccezioni {
    	
    	
    	public void copia() throws CopiaException{
    		String str = "A";
    		int i = Integer.parseInt(str);
    	}	
    	
    }
    odio chi parla di politica..
    anzi vorrei fondare un partito contro tutto ciò

  2. #12
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Non hai specificato il tipo di errore che ti viene segnalato... ad ogni modo, dal codice che hai postato mi pare di capire che tu fai lanciare al metodo copia() un eccezione di tipo CopiaException, senza però curarti di catturare l'eccezione NumberFormatException. Come risolvere:
    codice:
    public void copia() throws CopiaException {
       try {
          String str = "A";
          int i = Integer.parseInt(str);
       } catch (Exception e) {
          throw new CopiaException("Errore nel metodo copia()");
       }
    }
    E' importante capire che un metodo non può cambiare a suo piacimento il tipo di eccezione lanciato da un altro metodo: il metodo parseInt() lancia una NumberFormatException e chi scrive del codice usando quel metodo deve occuparsi della gestione di quel tipo di eccezione.


    Ciao. ciauz:
    "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. #13
    Utente di HTML.it L'avatar di morphy79
    Registrato dal
    Jun 2004
    Messaggi
    1,568
    toh...
    io credevo che CopiaException ereditando da MyException che a sua volta eredita da Exception, imtercettasse automaticamente tutti gli errori...
    odio chi parla di politica..
    anzi vorrei fondare un partito contro tutto ciò

  4. #14
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    no, parseInt ha le sue di eccezioni. Però tu potresti avere un metodo che lancia una tua eccezione al verificarsi di una certa condizione... per esempio:

    codice:
    public void setEta(int i) throws EtaException {
      if (i <= 0) {
        throw new EtaException("Età non può essere 0 o negativa");
      }
      else {
        eta = i;
      }
    }
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #15
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da morphy79
    toh...
    io credevo che CopiaException ereditando da MyException che a sua volta eredita da Exception, imtercettasse automaticamente tutti gli errori...
    L'ereditarietà funziona esattamente al contrario: un oggetto di una superclasse può fare riferimento ad oggetti di tutte le sue sottoclassi, ma non il contrario.
    Cioè, se ho un oggetto Figura posso immaginare che esso sia un Triangolo o un Quadrato, ma se ho un oggetto Quadrato non posso farlo diventare un Triangolo solo perchè esso eredita da Figura.

    Le eccezioni funzionano nello stesso identico modo: sono pur sempre deggli oggetti.
    Se sto intercettando una Exception catturerò qualsiasi sua sottoclasse, ma se sto intercettando una NumberFormatException non posso pretendere di catturare una CopiaException.


    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

  6. #16
    Utente di HTML.it L'avatar di morphy79
    Registrato dal
    Jun 2004
    Messaggi
    1,568
    Originariamente inviato da LeleFT
    L'ereditarietà funziona esattamente al contrario: un oggetto di una superclasse può fare riferimento ad oggetti di tutte le sue sottoclassi, ma non il contrario.
    Cioè, se ho un oggetto Figura posso immaginare che esso sia un Triangolo o un Quadrato, ma se ho un oggetto Quadrato non posso farlo diventare un Triangolo solo perchè esso eredita da Figura.

    Le eccezioni funzionano nello stesso identico modo: sono pur sempre deggli oggetti.
    Se sto intercettando una Exception catturerò qualsiasi sua sottoclasse, ma se sto intercettando una NumberFormatException non posso pretendere di catturare una CopiaException.


    Ciao.

    si mi sembra chiara come spiegazione... ti ringrazio molto come al solito
    odio chi parla di politica..
    anzi vorrei fondare un partito contro tutto ciò

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.