What are the standard practices for throwing JavaScript Exceptions?
w3schools说异常可以是字符串,整数,布尔值或对象,但是给出的例子并没有让我觉得好,因为异常类型检查是通过字符串比较完成的。 这是JavaScript中首选的异常处理方法吗? 是否有内置的异常类型(如NullPointerException)? (如果是这样,他们是什么,他们使用什么样的继承,他们比其他选择更受欢迎?)
例外可以是你喜欢的任何事情。
在其他语言中,异常应该是实例,然后
但是,JavaScript没有此功能。您只能捕获所有异常,然后查看该值以决定如何处理它。如果您不想处理异常,则必须手动重新抛出捕获的值。 (这不可避免地使
您可以决定将异常实现为对象,并将它们与
Are there built-in exception types (like NullPointerException)?
的种类。 ECMAScript定义了一些标准错误类:
直接使用这些对象并不常见,并且尝试将它们子类化是混乱的(因为JavaScript没有这样的类系统)。您可能会倾向于坚持使用您自己定义的异常来代替您自己的应用程序。例外并不是JavaScript中广泛使用的。
ECMA-262规范的第15.11节定义了几种
抛出这些类型的异常(或从它们派生的类型)似乎更可取,因为它更容易确定它们的类型;他们还有一个内置的消息属性。
根据我自己的经验,try / catch块有点罕见,感觉非常特殊,而不像Java中那样是不可避免的。
您可以尝试Dean Edwards的基础项目。它在javascript中模拟类继承,因此使用它可以使您子类化Error类型。您无法在javascript中捕获不同类型的错误(因为它不是强类型语言),但您可以确定抛出的错误类型,并为该特定类型添加逻辑,如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | try { // do something } catch (e) { if (e instanceof NullPointerError) { // handle nullpointer exception } else if (e instanceof RuntimeError) { // handle runtime exception } else { // regular exception } } |
当然在这段代码中我假设你已经将NullPointerError和RuntimeError类声明为Error的子类。