Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: Problema eccezioni

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    10

    Problema eccezioni

    Ciao ragazzi ho un grande problema con le eccezioni nel seguente esercizio.Praticamente la classe RubricaCollegata deve implementare l'interfaccia Rubrica completandone i metodi e deve lanciare un'EccezioneRubrica se nei metodi inserisci() o elimina() la stringa da eliminare è presente o meno.RubricaCollegata è la rappresentazione di un TDA tramite Struttura Collegata Lineare con side-effect.Nella compilazione tutto va bene tranne per le eccezioni infatti in fase di compilazione mi appare il seguente errore "unreported exception EccezioneRubrica; must be caught or declared to be thrown".Avevo pensato di usare throws ma così nn rispetterei il metodo dell'interfaccia.Avevo confrontato il mio codice con quello di altri ragazzi nel forum dell'università ed era pressocchè uguale,ma anche se provavo ad eseguire il loro codice mi dava lo stesso errore con le eccezioni.Qlcn può aiutarmi please?

    codice:
    import java.io.*;
    interface Rubrica{
    	public int numContatti();
    	public String dammiNumero(String p);
    	public void modificaNumero(String p,String numeroV,String numeroN);
    	public String toString();
    	public void inserisci(String p,String num);
    	public void elimina(String p,String num);
    	}
    codice:
    public class EccezioneRubrica extends Exception{
    	public EccezioneRubrica(String Messaggio){
    		super(Messaggio);
    		}
    	}
    codice:
    import java.io.*;
    
    	class Nodo{
    		public String nome;
    		public String numero;
    		public Nodo next;
    		public Nodo(Nodo next,String nome,String numero){
    			this.nome=nome;
    			this.numero=numero;
    			this.next=next;
    		}
    	}
    	
    	public class RubricaCollegata implements Rubrica{
    	
    		private Nodo nodoinit;
    		
    		public RubricaCollegata(){
    			nodoinit=null;
    			}
    			
    		public int numContatti(){
    			int cont = 0;
    			for (Nodo n = nodoinit;n!=null;n = n.next)
    			cont++;
    			return cont;
    			}
    			
    		public String dammiNumero(String p){
    			for (Nodo n = nodoinit;n.nome!=null;n = n.next)
    				if(n.nome.equals(p))
    					return n.numero;
    				return null;
    					}
    					
    		public void modificaNumero(String p,String numeroV,String numeroN){
    			for (Nodo n = nodoinit;n!=null;n = n.next)
    				if(n.nome.equals(p) && n.numero.equals(numeroV))
    					n.numero=numeroN;
    					}
    					
    		public String toString(){
    			String s = "";
    			for (Nodo n = nodoinit;n!=null;n = n.next)
    				s += n.nome +" "+ n.numero + "\n";
    				return s;
    				}
    				
    		public void inserisci (String p,String num){
    			for (Nodo n=nodoinit;n!=null;n=n.next)
    				if(n.nome.equals(p) && n.numero.equals(num)){
    					throw new EccezioneRubrica("voce gia presente");
    					}
    			if (nodoinit == null){
    			Nodo ins = new Nodo(null,p,num);
    			nodoinit = ins;
    			}
    			else{
    			Nodo ins = new Nodo(nodoinit,p,num);
    			nodoinit = ins;
    			}
    		}
    		
    		public void elimina (String p,String num){
    			for (Nodo n=nodoinit;n!=null;n=n.next)
    				if(!n.nome.equals(p) && !n.numero.equals(num)){
    					throw new EccezioneRubrica("voce non presente");
    					}
    			if (nodoinit==null)
    				throw new RuntimeException("elimina applicato a pila vuota");
    			else {
    				for (Nodo n=nodoinit;n!=null;n=n.next)
    					if(n.nome.equals(p) && n.numero.equals(num)){
    						n=n.next;
    						n.nome=n.next.nome;
    						n.numero=n.next.numero;
    					}
    				}
    			}
    		}

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Si, è normale!

    codice:
      public void sum(int n) throws MyException {
        if(n==0) throw new MyException("Errore");
      }
    ed ovviamente deve essere dichiarato nell'interfaccia in quel modo (ovvero con un throws MyException).
    Questo permette ai chiamanti del metodo di sapere che quel preciso metodo, quando chiamato può generare quel tipo di eccezione

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    10
    Mmm ho capito.Quindi per farlo dovrò per forza cambiare i metodi dell'interfaccia.Grazie

  4. #4
    Ho avuto lo stesso problema pur'io grazie x l'aiuto

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    10
    Ci sarebbe un altro problema.Ho fatto come mi hai detto e in quelle righe l'errore scompare,ma quando invoco i metodi elimina e inserisci all'interno rispettivamente di eliminaTutti e leggiContatti l'errore "unreported exception" si verifica nelle righe dell'invocazione.Ho provato a mettere throws EccezioneRubrica vicino all'invocazione di elimina e inserisci ma mi da gli errori "not a statement" e "; expected" spero di essermi fatto capire non so + ke fare

  6. #6
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da bobo2
    non so + ke fare
    Inizia a studiare come si gestiscono le eccezioni in Java... http://download.oracle.com/javase/tu...ons/index.html
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    10
    Si ma in teoria le ho già studiato le eccezioni ed è solo in qst esercizio che mi danno problemi.Sapete aiutarmi su quest'ultimo errore?

  8. #8
    Innanzitutto dovresti postare il codice, poi secondo me dovresti seguire il consiglio di Alex'87 perchè dalla domanda che poni evidentemente non hai compreso il funzionamento e la gestione delle eccezioni in Java.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    10
    Quello nel primo post secondo te cos'è?!?! :master: mica posso postarlo ad ogni post creando topic lunghissimi!
    E poi ve l'ho detto,le eccezioni le ho studiate ma non capisco il perchè di questo problema nell'invocazione.

  10. #10
    Originariamente inviato da bobo2
    Quello nel primo post secondo te cos'è?!?! :master: mica posso postarlo ad ogni post creando topic lunghissimi!
    E poi ve l'ho detto,le eccezioni le ho studiate ma non capisco il perchè di questo problema nell'invocazione.
    Prima di tutto rilassati che agitandosi non si risolvono i problemi, poi tu parli di metodi eliminaTutti() e leggiContatti(). Non mi sembra di vederli da nessuna parte nel codice. Per risolvere i problemi così hai bisogno di un veggente non di programmatori. Per cui ti consiglio di postare anche il codice contenente i metodi interessati.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

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.