首页 > 解决方案 > Dart 编程语言中的自定义异常

问题描述

我创建了一个名为的自定义异常DepositeException,并尝试(errorMessage)main方法中访问其自定义异常消息,但它抛出了错误。以下代码可能是什么问题。

void main() {
  try {
    depositAmount(-100);
  } catch (e) {
    print(e.errorMessage());
  }
}

class DepositException implements Exception {
  String errorMessage() {
    return "you cannot enter amount less then 0";
  }
}

void depositAmount(int amount) {
  if (amount < 0) {
    throw new DepositException();
  }
}


标签: dart

解决方案


发生这种情况是因为 ~~Dart 中的异常捕获未选中~~ 异常类型未指定,因此它将返回 Object(感谢 @jamesdlin 的更正)。

要捕获自定义异常,您需要指定如下类型:

try{
  depositAmount(-100);
} on DepositException catch (e){
    print(e.errorMessage());
}

参考:


推荐阅读