尝试调用函数
尝试使用提供的参数调用函数,并返回结果或捕获的错误对象。
- 使用
try...catch
块来返回函数的结果或适当的错误。 - 如果捕获的对象不是
Error
,则使用它创建一个新的Error
。
const attempt = (fn, ...args) => {
try {
return fn(...args);
} catch (e) {
return e instanceof Error ? e : new Error(e);
}
};
let elements = attempt(function(selector) {
return document.querySelectorAll(selector);
}, '>_>');
if (elements instanceof Error) elements = []; // elements = []