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 包含了出错原因的信息。
这种方法可以让你的程序在出现意外情况时继续运行,让代码更加健壮,也更方便用户使用。
挑战
简单创建一个程序,使用 try-catch 语句块安全地将用户输入的字符串转换为数字。你的程序应处理输入可能不是有效数字的情况,并防止程序崩溃。
- 读取一个表示待转换为整数的数字的字符串输入
- 使用
try-catch语句块,通过int.parse()安全地尝试转换 - 如果转换成功,计算该数字的平方(将它与自身相乘)
- 如果转换失败并发生异常,请妥善处理错误
- 按照下方显示的准确格式输出相应的结果或错误消息
例如,如果输入是 "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 代码块,将输入安全地转换为整数
// 如果转换成功,计算它的平方
// 处理转换过程中出现的所有异常
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程控制中的所有课
自己练习: Dart 在线编译器