Ram*_*him 8 javascript error-handling try-catch undefined
假设我有一个像这样的用户列表:
var usersList = [
{ firstName: 'Adam', lastName: 'Yousif', age: 23 },
{ firstName: 'Mohamed', lastName: 'Ali' },
{ firstName: 'Mona', lastName: 'Ahmed', age: 19 },
];
Run Code Online (Sandbox Code Playgroud)
现在我想在 usersList 上调用 map 函数并返回修改后的列表,如下所示:
var returnList = usersList.map((_user) => {
var _age;
try {
_age = _user.age;
} catch (error) {
console.log('I caught error here : ', error); // <-- not printed
_age = 'FAILSAFE-VAULE'; // <-- not set
}
var obj = {
firstName: _user.firstName,
lastName: _user.lastName,
age: _age
}
return obj;
});
Run Code Online (Sandbox Code Playgroud)
我在地图函数内有一个 try-catch 块,它的目的是用'FAILSAFE-VALUE'. 但它没有按预期工作。
console.log(returnList);
// prints
// [
// { firstName: 'Adam', lastName: 'Yousif', age: 23 },
// { firstName: 'Mohamed', lastName: 'Ali', age: undefined }, <-- not what I want
// { firstName: 'Mona', lastName: 'Ahmed', age: 19 }
// ]
Run Code Online (Sandbox Code Playgroud)
如何捕获 javascript 地图函数内部的错误?
谢谢
小智 9
您不需要为此尝试捕获:
usersList.map((_user) => {
return {
firstName: _user.firstName,
lastName: _user.lastName,
age: _user.age || 'FAILSAFE-VAULE'
};
});
Run Code Online (Sandbox Code Playgroud)
小智 1
try...catch块在那里不起作用,因为在访问不存在的值后,您只会收到一个undefined
就按下面的方法做:
var returnList = usersList.map((_user) => {
return {
firstName: _user.firstName,
lastName: _user.lastName,
age: _user.age ? _user.age : 'FAILSAFE-VAULE'
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13246 次 |
| 最近记录: |