Menu
CoddyTech

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");
}
challenge icon

挑战

简单

创建一个名为 divideNumbers 的方法,它接受三个参数:

  1. 一个表示第一个数字的字符串(num1)
  2. 一个表示第二个数字的字符串(num2)
  3. 一个表示数组索引的整数(index)

该方法应当:

  1. 创建一个大小为 2 的数组
  2. 将 num1 解析为整数后除以 num2 解析为整数的结果,存储在给定索引处
  3. 返回给定索引处的值
  4. 处理所有可能出现的异常,并返回相应的错误消息

返回的消息应为:

  • 对于 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));
    }
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

逻辑与流程中的所有课

自己练习: Java 在线编译器