欢迎访问宙启技术站
智能推送

Java中的异常处理和函数如何结合使用?

发布时间:2023-06-01 02:20:15

Java中的异常处理和函数可以通过try-catch语句来结合使用。当函数内部可能发生异常情况时,可以将可能抛出异常的代码放置在try代码块中,然后在catch代码块中处理异常情况。

例如,以下代码示例中的函数divide用于计算两个数的商,但存在除数为0的情况,因此在函数内部使用了try-catch语句来捕获异常情况,并输出错误信息。

public static double divide(double a, double b) {
    double result = 0.0;
    try {
        result = a / b;
    } catch (ArithmeticException e) {
        System.out.println("除数不能为0");
    }
    return result;
}

在调用函数divide时,如果除数为0,则会输出错误信息。

double a = 10;
double b = 0;
double result = divide(a, b); // 输出“除数不能为0”

除了在函数内部处理异常情况外,还可以将异常抛出到函数的调用方进行处理。这种情况下,函数需要使用throw关键字抛出异常,然后在调用方使用try-catch语句进行捕获和处理。

例如,以下代码示例中的函数getAge用于获取一个人的年龄,但如果输入的生日日期格式不正确,则会抛出一个IllegalArgumentException异常。

public static int getAge(String birthday) throws IllegalArgumentException {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    Date date = null;
    try {
        date = sdf.parse(birthday);
    } catch (ParseException e) {
        throw new IllegalArgumentException("日期格式不正确");
    }
    Calendar cal = Calendar.getInstance();
    cal.setTime(date);
    int year = cal.get(Calendar.YEAR);
    int nowYear = Calendar.getInstance().get(Calendar.YEAR);
    return nowYear - year;
}

在调用函数getAge时,可以使用try-catch语句进行捕获和处理函数抛出的异常。

String birthday = "2000-13-01";
try {
    int age = getAge(birthday); // 抛出“日期格式不正确”异常
    System.out.println("年龄为:" + age);
} catch (IllegalArgumentException e) {
    System.out.println(e.getMessage());
}