try-catch 基础
本课属于 Coddy Java 学习旅程的“逻辑与流程”单元。第 40 课,共 59 课。
Java 中的 try-catch 块用于处理程序运行期间可能发生的异常(错误)。可能抛出异常的代码放在 try 块中,处理错误的代码放在 catch 块中。
这是 try-catch 块的基本结构:
try {
// 可能抛出异常的代码
} catch (ExceptionType e) {
// 处理异常的代码
}让我们通过 Integer.parseInt() 看看它的实际效果,它可以将字符串转换为整数:
String text = "abc";
try {
int number = Integer.parseInt(text);
System.out.println(number);
} catch (NumberFormatException e) {
System.out.println("Error: Not a valid number");
}运行上面的代码后,输出为:
Error: Not a valid number
一个 try 后面可以跟多个 catch 块,每种异常类型对应一个。Java 会运行第一个类型与抛出的异常匹配的块:
try {
int number = Integer.parseInt(text);
System.out.println(10 / number);
} catch (NumberFormatException e) {
System.out.println("Error: Not a valid number");
} catch (ArithmeticException e) {
System.out.println("Error: Division by zero");
}挑战
简单创建一个名为 divideNumbers 的方法,它接受三个参数:
- 一个表示第一个数字的字符串(
num1) - 一个表示第二个数字的字符串(
num2) - 一个表示数组索引的整数(
index)
该方法应当:
- 创建一个大小为 2 的数组
- 将 num1 解析为整数后除以 num2 解析为整数的结果,存储在给定索引处
- 返回给定索引处的值
- 处理所有可能出现的异常,并返回相应的错误消息
返回的消息应为:
- 对于
NumberFormatException:"Error: Invalid number format" - 对于
ArithmeticException:"Error: Division by zero" - 对于
ArrayIndexOutOfBoundsException:"Error: Invalid array index" - 操作成功时:以字符串形式返回结果
亲手试试
import java.util.Scanner;
public class Main {
public static String divideNumbers(String num1, String num2, int index) {
// 在这里编写你的代码
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String num1 = scanner.nextLine();
String num2 = scanner.nextLine();
int index = Integer.parseInt(scanner.nextLine());
System.out.println(divideNumbers(num1, num2, index));
}
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: Java 在线编译器