如何解决如何处理 try/catch 之外的错误?
我在我的代码中的许多地方使用 try/catch 从控制台隐藏系统时出错。示例:
try {
//code with error
}
catch(e){
//do nothing
}
现在我正在向我的程序添加调试模式,我绝对希望将所有错误都记录到控制台,包括由上述构造处理的错误。最简单的方法是添加一些 debugPrint func,其中 DEBUG env var 将在每个 catch 中检查,但我正在寻找最短的方法。我试图向窗口添加错误事件侦听器,但这不起作用。有没有类似的解决方案?
解决方法
我会包装代码以在传递给函数的回调中运行,并让该函数在 try
/catch
中调用回调,并在需要时记录:
const runWithCatch = (cb) => {
try {
return cb();
} catch(e) {
if (debug) {
console.error(e);
}
}
};
runWithCatch(() => {
// some code that might throw
});
也就是说,这很奇怪,看起来可能是 X/Y 问题。运行时错误不应该出现在精心制定的同步代码中;如果确实出现错误,几乎肯定应该重构代码。
(如果您正在发出异步请求,则情况完全不同,因为预期偶尔会出现错误是合理的,而这些错误并非由代码逻辑问题引起)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。