如果语句检查错误类型

时间:2015-09-30 15:45:35

标签: javascript

我收到以下错误:

{ [TokenExpiredError: jwt expired]
  name: 'TokenExpiredError',
  message: 'jwt expired',
  expiredAt: Wed Sep 30 2015 16:44:44 GMT+0200 (CEST) }

我尝试过以下操作,但没有工作:

    try {
        // ...code
    } catch (err) {
        if (typeof err === 'TokenExpiredError') {
            // ...do stuff
        }

    }

我想查看对象类型。我知道我可以检查消息,但是我想学习如何检查错误对象上的对象类型。

1 个答案:

答案 0 :(得分:1)

实际上,对象类型是err.name的值,应该进行检查。

但是如果你想使用instanceof

try {
    // ...code
} catch (err) {
    if (err instanceof TokenExpiredError) {
        // ...do stuff
    }
}

假设TokenExpiredError之前已定义(作为构造函数)。否则,请使用Error

注意:不要使用引用,因为您传递了对函数的引用。