目的
像在Java或类似语言中那样,将InvalidArgumentException抛出到JavaScript方法中。
背景
我一直在尝试使自己熟悉JavaSctipt错误处理,并且我知道我可以使用throw
关键字引发异常。
为此,我也阅读了throw documentation on MDN和Error 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,推荐了一篇引起这篇文章的文章,该文章导致了我一直在寻找答案的博客。
感谢所有的帮助!所有人的荣誉!