面试题答案
一键面试import 'dart:async';
Future<void> asyncFunctionThatMayThrow() async {
// 模拟可能抛出异常的异步操作
await Future.delayed(const Duration(seconds: 1));
throw Exception('模拟异常');
}
Future<void> mainFunction() async {
try {
await asyncFunctionThatMayThrow();
print('异步函数执行成功');
} catch (e) {
print('捕获到异常: $e');
}
}
在上述代码中,mainFunction
是一个异步函数,其中使用 await
调用了 asyncFunctionThatMayThrow
这个可能抛出异常的异步函数。try - catch
块的作用是捕获 asyncFunctionThatMayThrow
执行过程中抛出的异常,避免异常向上传播导致程序崩溃。如果 asyncFunctionThatMayThrow
没有抛出异常,try
块内的后续代码(print('异步函数执行成功');
)会正常执行;若抛出异常,程序会跳转到 catch
块中执行相应的异常处理逻辑(print('捕获到异常: $e');
)。