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