目的

像在Java或类似语言中那样,将InvalidArgumentException抛出到JavaScript方法中。

背景

我一直在尝试使自己熟悉JavaSctipt错误处理,并且我知道我可以使用throw关键字引发异常。

为此,我也阅读了throw documentation on MDNError documentation on MDN

问题

到目前为止,这是我的代码:

if (mySize >= myArray.length)
    throw new Error("InvalidArgumentExcpetion - BANG!!!!");

这段代码对我来说有一些问题:
  • 我在异常本身中有文字。现在我有BANG,但是明天我可能想要BONG,如果我决定更改它,我必须到处看看!
  • 我正在使用错误,而不是真正的InvalidArgumentExcpetion类型的新对象。这是正确的方法吗?

  • 问题

    所以现在我很困惑。
  • 我应该像在throw文档中那样创建一个新对象,还是创建一个错误消息?
  • JavaScript是否没有可以使用的InvalidArgumentException对象?
  • 我应该如何进行处理才能以可维护的方式抛出使用ECMA6 的错误
  • 最佳答案

    经过研究,我现在得出了自己喜欢的解决方案。对于Toan表示特别的敬意,我很乐意选择他的答案,但是由于我确实认为它仍然有些不完整,因此我决定根据自己的发现来创建自己的答案。希望它能帮助某人!

    问题:

  • 使用Toan提出的解决方案:https://stackoverflow.com/a/38146237/1337392
  • 这是可能的,尽管如果您想要自定义,则确实需要创建自己的对象。

  • 答案:
  • 如果要像Java中一样根据异常的类型来处理异常,则应像在文档中那样创建一个新对象。 (由Toan Nguyen撰写)
  • Javascript没有 InvalidArgumentException (由Toan Nguyen创建)
  • 重新搜索后,发现了这个解决方案:https://stackoverflow.com/a/32750746/1337392

  • 学分:
  • Toan Nguyen,第一个答案和他的好主意
  • DavidWickström,推荐了一篇引起这篇文章的文章,该文章导致了我一直在寻找答案的博客。

  • 感谢所有的帮助!所有人的荣誉!

    08-15 17:55