Dart 中如何处理异常 (Exception)?

· 约 3 分钟读完 · 第 99 / 176 章

推荐答案

在 Dart 中,异常处理主要通过 try、catch、finally 和 on 关键字来实现。以下是一个典型的异常处理结构:

本题详细解读

1. try 块

try 块用于包裹可能会抛出异常的代码。如果在 try 块中的代码抛出了异常,程序会立即跳转到相应的 catch 块或 on 块。

2. on 和 catch 块

  • on 块用于捕获特定类型的异常。你可以指定一个异常类型(例如 SomeException),并且只有当该类型的异常被抛出时,on 块中的代码才会执行。

  • catch 块用于捕获所有类型的异常。你可以通过 catch 块捕获异常对象(e)和堆栈跟踪信息(s),以便进行进一步的处理或调试。

3. finally 块

finally 块中的代码无论是否发生异常都会执行。通常用于释放资源或执行一些清理操作。

4. 抛出异常

你可以使用 throw 关键字手动抛出异常。例如:

5. 自定义异常

Dart 允许你定义自己的异常类。自定义异常类通常继承自 Exception 类:

6. 异常传播

如果在 try 块中抛出的异常没有被捕获,它将会传播到调用栈的上层,直到被捕获或导致程序终止。

7. 异步异常处理

在异步代码中,异常处理的方式与同步代码类似。你可以使用 try、catch、finally 来处理异步操作中的异常:

通过以上方式,你可以在 Dart 中有效地处理异常,确保程序的健壮性和可靠性。