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;
}
}
}
}