MST

星途 面试题库

面试题:Flutter 中 async/await 错误处理基础

在Flutter的一个async函数中使用await调用另一个可能抛出异常的异步函数,如何使用try - catch块来捕获并处理这个异常?请写出代码示例,并简要说明try - catch块在这种场景下的作用。
27.3万 热度难度
前端开发Flutter

知识考点

AI 面试

面试题答案

一键面试
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');)。