Jump to content
razielmitico

Programmazione Java: errore nella stessura di un metodo che estende la classe Exception

Recommended Posts

Salve ragazzi,

stavo scrivendo un programmino in java che possa calcolare le soluzioni di un equazione di secondo grado.

Il programma è diviso in due classi una classe equazione in cui si calcolano i risultati e una classe delta in cui si calcola il delta e in tal caso il delta sia minore di 0 si solleva un errore di tipo DeltaException (che estende Exception) che dice che l'equazione non ha risultati.

 

Ecco il codice della classe Delta:



public class Delta {
	private int a;
	private int b;
	private int c;
	private double delta;
	private DeltaException errore;
	
	public Delta (int a,int b,int c) throws DeltaException{
		this.a= a;
		this.b = b;
		this.c = c;
		delta = (b*b)-4*a*c;
		if (delta<0){
			throw new DeltaException ("il delta è minore di 0");			
		}
	}
	
	public double getDelta (){
		return delta;
	}
	
	public class DeltaException extends Exception {
		private String error =" ";
		
			public void DeltaException(String error){
				this.error=error;
			}
			
			public String getError(){
				return error;
			}
    }

public static void main (String[] args){
	Delta delta = new Delta (5,6,7);
	if (delta.getDelta()==-1)
		System.out.println("L'equazione non ha soluzione!");
	System.out.println(delta.getDelta());
}

}

per compilare uso il prompt dei comandi di windows e il comando "javac"

ecco l'errore:

 

C:\Users\silvio\Desktop\equazione di secondo grado>javac Delta.java
Delta.java:16: error: constructor DeltaException in class Delta.DeltaException c
annot be applied to given types;
throw new DeltaException ("il delta +¿ minore di 0");

          ^
required: no arguments
found: String
reason: actual and formal argument lists differ in length
1 error

Share this post


Link to post
Share on other sites

Mettici un bel Try Catch , cosi funziona fermosiset2117454613imadj1.gif (P.s io ti consiglio di usare Eclipse per il Java è molto meglio xD)

public class Delta {private int a;private int b;private int c;private double delta;private DeltaException errore; public Delta (int a,int b,int c) throws DeltaException{this.a = a;this.b = b;this.c = c;delta = (b*b)-4*a*c;try{ if (delta<0){throw new DeltaException (); }}catch(DeltaException ex){System.out.println("il delta è minore di 0");}} public double getDelta (){return delta;} public class DeltaException extends Exception {private String error =" "; public void DeltaException(String error){this.error=error;} public String getError(){return error;}    } public static void main (String[] args) throws DeltaException{Delta delta = new Delta (5,6,7);if (delta.getDelta()==-1)System.out.println("L'equazione non ha soluzione!");System.out.println(delta.getDelta());} }

Share this post


Link to post
Share on other sites

Rieccomi!

Con il try catch funziona perfettamente ma in compilazione mi da questo errore:

 


C:\Users\silvio\Desktop\equazione di secondo grado>javac Delta.java
Delta.java:36: error: modifier private not allowed here
private class DeltaException extends Exception {
^
1 error

C:\Users\silvio\Desktop\equazione di secondo grado>

 

riposto il codice così potete vederlo adesso

	

public class Delta {
	private int a;
	private int b;
	private int c;
	private double delta;
	private DeltaException errore;
	
	public Delta (int a,int b,int c) throws DeltaException{
		this.a= a;
		this.b = b;
		this.c = c;
		delta = (b*b)-4*a*c;
		try{
			if (delta<0){
				throw new DeltaException (); 
			}
		}
		catch(DeltaException ex){
			System.out.println("il delta è minore di 0");
		}
	}
	public double getDelta (){
		return delta;
	}
	
	public static void main (String[] args){
	Delta delta = new Delta (5,6,7);
	if (delta.getDelta()==-1)
		System.out.println("L'equazione non ha soluzione!");
	System.out.println(delta.getDelta());
	}
}

		public class DeltaException extends Exception {
		private String error =" ";
		
			public void DeltaException(String error){
				this.error=error;
			}
			
			public String getError(){
				return error;
			}
        }


	

	



Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

×