javascript中是否有类似于python'pass'的东西?
我想做的javascript相当于:
try:
# Something that throws exception
catch:
pass
javascript中是否有类似于python'pass'的东西?
我想做的javascript相当于:
try:
# Something that throws exception
catch:
pass
pass
是 Python 中的空操作。你需要它来处理空块,因为
try:
# Something that throws exception
catch:
# continue other stuff
是语法错误。在 JavaScript 中,您可以只使用一个空catch
块。
try {
// Something that throws exception
}
catch (e) {}
有,这里是:
没错,什么都没有:
try {
somethingThatThrowsAnException();
} catch (e) {
}
我想做的javascript相当于:
try: # Something that throws exception catch: pass
Python 没有 try/catch。它有尝试/除外。所以用 替换catch
,except
我们会有这个:
try {
// throw any exception
} catch(err) {}
catch 后面的空代码块相当于 Python 的pass
.
最佳实践
然而,人们可能会对这个问题有一点不同的解释。假设您想采用与 Python 的 try/except 块相同的语义。Python 的异常处理更加细致入微,可以让您指定要捕获的错误。
实际上,仅捕获特定错误类型被认为是最佳实践。
因此,Python 的最佳实践版本是,因为您只想捕获准备处理的异常,并避免隐藏错误:
try:
raise TypeError
except TypeError as err:
pass
您可能应该对适当的错误类型进行子类化,标准 Javascript 没有非常丰富的异常层次结构。我之所以选择TypeError
它是因为它与 Python 的TypeError
.
为了在 Javascript 中遵循相同的语义,我们首先必须捕获所有错误,因此我们需要对此进行调整的控制流。所以我们需要pass
用 if 条件判断错误是否不是我们想要的错误类型。缺少 else 控制流是TypeError
. 使用这段代码,理论上,所有其他类型的错误都应该浮出水面并被修复,或者至少被识别出来以进行额外的错误处理:
try { // try:
throw TypeError() // raise ValueError
} catch(err) { // # this code block same behavior as
if (!(err instanceof TypeError)) { // except ValueError as err:
throw err // pass
}
}
欢迎评论!