📅  最后修改于: 2023-12-03 15:00:20.476000             🧑  作者: Mango
在 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 中,我们可以通过自定义异常来更好地处理程序中的错误和异常情况。本文介绍了如何定义和使用自定义异常类。在使用时注意捕获异常并正确处理,以保证程序的稳定性和可靠性。