飞镖catch(e)和on Exception catch(e)飞镖和有什么不一样?
避免在没有 on 子句的情况下捕获。
使用不带 on 子句的 catch 子句会使您的代码容易遇到不会抛出的意外错误(因此不会被注意到)。
坏的:
try {
somethingRisky()
} catch(e) {
doSomething(e);
}
Run Code Online (Sandbox Code Playgroud)
好的:
try {
somethingRisky()
} on Exception catch(e) {
doSomething(e);
}
Run Code Online (Sandbox Code Playgroud)
lrn*_*lrn 10
在} on Exception catch (e) {将捕获实现所有抛出的对象Exception。排除大多数错误(实现Error),
在} catch (e) {将捕获所有抛出的对象,无论是异常和错误-和其他任何可能会抛出。大多数抛出的对象都实现Exception或Error,但这只是一个约定。null可以抛出任何非对象。
我实际上也建议反对on Exception。异常不是错误,它们用于函数作为返回值的替代方法,但异常仍然是函数 API 的一部分,您应该只捕获您实际计划处理的异常。由于Exception它本身没有信息,您应该捕获函数记录为抛出的子类型,以便您可以使用可用信息来处理异常情况。如果您不打算处理它,您不妨将异常视为错误。
} catch (e) {在某些情况下,仅用于捕获所有内容是合理的,主要是在包装其他用户代码的框架代码中,并且需要确保用户代码错误或未处理的异常不会影响整个程序。
| 归档时间: |
|
| 查看次数: |
995 次 |
| 最近记录: |