java 一元二次方程 异常处理

@SuppressWarnings("serial")
public class ArgumentException extends Exception{
public ArgumentException(String msg)
{
super (msg);
}
}

import java.util.Scanner;

class Result
{
private static Scanner s;
private static double a;
private static double b;
private static double c;
double x1;
double x2;

public  Result createResult() {
Result t = new Result();
return t;
}

public  Result resolve(double a,double b,double c)throws ArgumentException
{
Result r=new Result();
createResult();
if (a == 0)
{
if (b == 0)
{
if (c == 0)
{
throw new ArgumentException("参数不能全为0");
} else
{
throw new ArgumentException("该方程无解");
}
} else
{
r.x1 = r.x2 = c/b;
}
} else
{
double delta = b * b - 4 * a * c;
if (delta < 0)
{
throw new ArgumentException("该方程无解");
} else
{
r.x1 = ((-b) + Math.sqrt(delta))/(2 * a);
r.x2 = ((-b) - Math.sqrt(delta))/(2 * a);

}

}
return r;
}
}

public class Resolve{

private static Scanner s;
private static double a;
private static double b;
private static double c;
//public static Result createResult;

public static void main(String[] args) throws ArgumentException
{
s = new Scanner(System.in);
a = s.nextDouble();
b = s.nextDouble();
c = s.nextDouble();
Result r=new Result();

try
{
r = r.resolve(a,b,c);
System.out.println("x1="+r.x1);
System.out.println("x2="+r.x2);
}catch (ArgumentException ae)
{
System.out.println(ae.getMessage());
}

}

}