当我尝试扩展Exception类并且无法找出原因时,我一直收到错误。 以下是我的自定义异常的代码:
class MyException extends Exception {
String msg;
MyException(this.msg);
String toString() => 'FooException: $msg';
}
错误解决了构造函数。它抱怨“生成构造函数'异常([动态消息]) - >异常'预期,但工厂发现”。我该如何解决这个问题?
答案 0 :(得分:9)
你几乎是对的。您需要实现异常而不是扩展它。这应该有效:
class MyException implements Exception {
final String msg;
const MyException(this.msg);
String toString() => 'FooException: $msg';
}
您不必使msg
成为最终版本或构造函数const
,但您可以。以下是Exception类(来自dart:core库)的实现示例:
class FormatException implements Exception {
/**
* A message describing the format error.
*/
final String message;
/**
* Creates a new FormatException with an optional error [message].
*/
const FormatException([this.message = ""]);
String toString() => "FormatException: $message";
}