Menu
CoddyTech

try-catch 代码块

本课属于 Coddy Dart 学习旅程的“逻辑与流程控制”单元。第 39 课,共 65 课。

现在你已经了解了什么是异常,让我们来学习如何使用 try-catch 块优雅地处理异常。这是一个基本工具,可以在出现问题时防止程序崩溃。

try-catch 块的工作方式是将可能出现问题的代码放在 try 部分中。如果发生异常,Dart 不会让程序崩溃,而是立即跳转到 catch 部分,让你妥善处理错误。

try {
  // 可能引发异常的代码
  int number = int.parse("abc");
} catch (e) {
  // 发生异常时运行的代码
  print("Something went wrong: $e");
}

在这个示例中,尝试将字符串 "abc" 转换为整数通常会导致程序崩溃。不过,由于它被放在 try 块中,异常会被捕获,并在 catch 块中处理。变量 e 包含了出错原因的信息。

这种方法可以让你的程序在出现意外情况时继续运行,让代码更加健壮,也更方便用户使用。

challenge icon

挑战

简单

创建一个程序,使用 try-catch 语句块安全地将用户输入的字符串转换为数字。你的程序应处理输入可能不是有效数字的情况,并防止程序崩溃。

  1. 读取一个表示待转换为整数的数字的字符串输入
  2. 使用 try-catch 语句块,通过 int.parse() 安全地尝试转换
  3. 如果转换成功,计算该数字的平方(将它与自身相乘)
  4. 如果转换失败并发生异常,请妥善处理错误
  5. 按照下方显示的准确格式输出相应的结果或错误消息

例如,如果输入是 "5",你的程序应输出:

Processing input: 5
Conversion successful!
The square of 5 is: 25

如果输入是 "abc",你的程序应输出:

Processing input: abc
Error: Cannot convert 'abc' to a number
Please enter a valid integer

如果输入是 "12",你的程序应输出:

Processing input: 12
Conversion successful!
The square of 12 is: 144

你的程序必须使用 try-catch 语句块包裹 int.parse() 操作。在 try 部分,尝试将输入字符串转换为整数并计算它的平方。在 catch 部分,处理转换过程中发生的任何异常,并显示相应的错误消息。无论转换成功还是失败,程序都应继续正常运行。

亲手试试

import 'dart:io';

void main() {
  // 读取输入的字符串
  String? input = stdin.readLineSync();
  
  // 显示处理提示信息
  print('Processing input: $input');
  
  // TODO:在下方编写你的代码
  // 使用 try-catch 代码块,将输入安全地转换为整数
  // 如果转换成功,计算它的平方
  // 处理转换过程中出现的所有异常
  
}
quiz icon自我测试

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

逻辑与流程控制中的所有课

自己练习: Dart 在线编译器