try-catch错误“未涵盖Flow”

时间:2016-08-15 13:35:10

标签: flowtype

当我启用类型覆盖时,我收到一个警告,即try-catch的catch部分中的错误是不包含在流中。如果我尝试catch(err: Error),我会收到意外令牌:

try {
// do something that fails and throws an Error
} catch(err) {
  console.error('Error: ', err.message, err.stack)
}

所以我的问题是,可以输入检查吗?如果是的话,最好的解决方案是什么?

我正在使用FlowType 0.30.0。

1 个答案:

答案 0 :(得分:1)

我猜你正在使用核素并启用了类型覆盖功能。您可以单击状态栏中的百分比来启用/禁用它。

"揭露"消息严格来说不是Flow错误。它只是告诉你Flow并不知道某事物的类型。在这种情况下,它是正确的。没有办法静态地知道异常类型是什么。在JS中你可以抛出任何类型,所以你实际上并不确定它甚至是一个错误实例。

然而,在这种情况下,它也是一个良性的信息。就个人而言,我并不认为100%的报道必然是一个好目标。在某些情况下,有这样的方法可以使用未覆盖的代码。