怎么抛出异常在一个方法

名字为getRoot1()和getRoot2()的方法,分别反程的两个根 ;如果判别式为负,则抛出异常 QuadraticException

throw new Exception("异常消息"); // Exception 可替换成你自己的异常或指定的异常

try{}catch{}补获异常

import java.util.Scanner;

class QuadraticEquation {  
    static double secondDerivative(double a, double b, double c) {  
        return (b * b - 4 * a * c) / (4 * a);  
    }

    static double discriminant(double a, double b, double c) {  
        return secondDerivative(a, b, c) - (b * b - 4 * a * c);  
    }

    static boolean isRoot(double a, double b, double c, double x) {  
        return ((discriminant(a, b, c) == 0) && (Math.abs(secondDerivative(a, b, c) - (b * b - 4 * a * c)) < 1e-10)) || (x == a / 2 || x == b / 2);  
    }

    static double getRoot1(double a, double b, double c) throws QuadraticException {  
        if (isRoot(a, b, c, a / 2)) {  
            return a / 2;  
        } else {  
            throw new QuadraticException("无实数根,异常");  
        }  
    }

    static double getRoot2(double a, double b, double c) throws QuadraticException {  
        if (isRoot(a, b, c, b / 2)) {  
            return b / 2;  
        } else {  
            throw new QuadraticException("无实数根,异常");  
        }  
    }

    public static void main(String[] args) {  
        Scanner scanner = new Scanner(System.in);  
        System.out.print("输入abc");  
        double a = scanner.nextDouble();  
        double b = scanner.nextDouble();  
        double c = scanner.nextDouble();

        try {  
            double x1 = getRoot1(a, b, c);  
            double x2 = getRoot2(a, b, c);  
            System.out.println("根分别是 " + x1 + " 和 " + x2);  
        } catch (QuadraticException e) {  
            System.out.println("错误发生");  
        }  
    }  
}