Dart:未为“Object”类定义方法“errMsg”

问题描述 投票:0回答:1
class AmtException implements Exception {
String errMsg() => 'Amount should not be less than zero';
}

void main() {
try {
var amt = -1;
if (amt < 0) {
throw AmtException();
}
} catch (e) {
print(e.errMsg());
}
}

我正在尝试创建自定义异常并抛出自定义异常类的对象。但是当我尝试调用自定义类异常的方法时。

错误

dart/exceptions.dart:81:11:错误:没有为类“Object”定义方法“errMsg”。

  • “Object”来自“dart:core”。 尝试将名称更正为现有方法的名称,或定义名为“errMsg”的方法。 错误.errMsg();
flutter dart oop error-handling exceptionhandler
1个回答
0
投票

当您使用

catch (e)
时,这意味着您正在捕获任何错误,因此
e
的类型为
Object

如果您想捕获特定错误,请使用

on NameOfTheException catch (e)
语法:

try {
  throw AmtException();
} on AmtException catch (e) {
  // Now `e` is an `AmtException`
  print(e.errMsg());
}
© www.soinside.com 2019 - 2024. All rights reserved.