如果我在JS中捕获到异常,该异常可以为null还是未定义?我看到了像下面这样的空检查,并且想知道是否e真的需要进行第一次检查。我的主观感觉告诉我,e永远是有价值的。
try {
/// any code here
} catch (e) {
if (e && e.data && e.data.errors) {
console.error(e.data.errors)
}
Run Code Online (Sandbox Code Playgroud)
我已经在网上搜索了,但找不到答案。
是的,如果您抛出一个普通值而不是a new Error,则可能会发生这种情况:
try {
throw undefined;
} catch(e) {
console.log(e, typeof e);
}
try {
throw null;
} catch(e) {
console.log(e, typeof e);
}Run Code Online (Sandbox Code Playgroud)
但这是非常不好的做法-最好将抛出的错误包装在new Error(或其他适当的错误构造函数中)中:
try {
throw new Error('error!');
} catch(e) {
console.log(e);
console.log(e.stack);
console.log(e.name);
}Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
46 次 |
| 最近记录: |