📜  dart 自定义异常 - Dart (1)

📅  最后修改于: 2023-12-03 15:00:20.476000             🧑  作者: Mango

Dart 自定义异常

在 Dart 中,我们可以通过自定义 Exception 类来封装我们的异常信息。这些自定义异常可以帮助我们更好地处理程序中的错误和异常情况。本文将介绍如何在 Dart 中定义和使用自定义异常。

定义自定义异常类

自定义异常类需要继承自 Exception 类。以下是一个简单的自定义异常类的例子:

class MyException implements Exception {
  final String message;

  MyException(this.message);

  @override
  String toString() => message;
}

在这个例子中,我们定义了一个名为 MyException 的自定义异常类。它包含了一个 message 成员变量,表示异常信息。在构造函数中,我们接收一个字符串作为参数,将其赋值给 message 变量。最后,我们重写了 toString() 方法,将 message 变量作为字符串返回。这样,在抛出 MyException 异常时,可以直接将实例化对象传递给 throw 语句,例如:

throw MyException('Something went wrong');
捕获自定义异常

当程序中抛出一个自定义异常时,我们可以通过 try-catch 语句来捕获异常并处理异常情况。

try {
  // 执行可能抛出异常的代码
} catch (e) {
  if (e is MyException) {
    // 处理 MyException 异常
    print(e.toString());
  } else if (e is Exception) {
    // 处理其它类型的异常
    print('Unknown exception: $e');
  } else {
    // 处理未知异常
    print('Unknown error: $e');
  }
}

在这个例子中,我们使用 try-catch 语句来捕获可能抛出异常的代码块。在 catch 语句中,我们首先判断异常类型是否为 MyException,如果是,我们就处理该异常,例如将异常信息输出到控制台。如果该异常不是 MyException 类型,我们可以选择处理其他类型的异常,或者将 catch 语句块留空以忽略该异常。最后,如果该异常不属于任何已知类型,我们仅输出一个指示未知错误的错误信息。

总结

在 Dart 中,我们可以通过自定义异常来更好地处理程序中的错误和异常情况。本文介绍了如何定义和使用自定义异常类。在使用时注意捕获异常并正确处理,以保证程序的稳定性和可靠性。