【问题标题】:Can you catch Dart errors of a specific type WITH specific parameter values?你能用特定的参数值捕捉到特定类型的 Dart 错误吗?
【发布时间】:2022-09-25 02:24:17
【问题描述】:

我有一个使用 Firestore 获取数据的应用程序,并且我创建了一个自定义异常类型“NoFirestoreDataException”,当我在我期望的情况下没有获取任何数据时可以抛出该异常类型。

异常类型有一个参数,dataType,,它从我在 Firestore 中使用的所有数据类型的枚举中获取一个值,返回消息基本上只是说在这个查询中没有找到dataType 的数据。

我有一些地方专门捕捉到这种类型的错误,但我想缩小它,这样如果数据类型与我实际期望的匹配,我就可以捕捉它。

如果我正在搜索 User 并得到 NoFirestoreDataException(FirestoreDataType.Goal) 回复,我不想优雅地处理该错误,因为这将是非常出乎意料的。

有没有办法使用单个自定义异常类型来做到这一点?

  • catch 仅对对象的类型起作用。如果您需要更多粒度,您的异常处理程序将需要检查捕获对象的属性,如果您不想处理它,则需要检查 rethrow 它。

标签: dart error-handling


【解决方案1】:

根据@jamesdlin 的评论,我要么需要:

  • 为每种情况创建不同类型的异常,或者:
  • 有一种类型的异常,捕获该类型,然后添加一个if 语句以确保异常中的属性与我期望的匹配。

【讨论】:

    猜你喜欢
    • 2017-09-22
    • 2018-03-24
    • 2015-01-06
    • 2013-06-10
    • 1970-01-01
    • 2021-08-03
    • 2018-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多