我有一个角度为6的应用程序。做这样的事情不好吗?
ShallowFunction() {
try {
//...do stuff
DeepFunction();
//...do more stuff
} catch (error) {
DisplayMessageToUser('There was a problem doing stuff.');
}
}
DeepFunction() {
try {
//...do stuff
} catch(error) {
console.log('There was an error in DeepFunction: ', error);
throw error;
}
}
我正在专门研究DeepFunction中的catch块。我发现了错误,将其记录下来,然后再次抛出。我这样做的原因是,我想在调用堆栈的最深处记录错误,因为这是我最清楚地知道发生了什么的地方。我不知道ShallowFunction这么精确。那里的catch块 捕获的错误可能是由于DeepFunction,或者是由于“执行任务”或“执行更多任务”。我可以让错误从DeepFunction扩散到ShallowFunction,然后 then 记录错误,但是我无法记录该错误发生在DeepFunction中(这有助于调试)。即使我将其记录在DeepFunction中,我仍然想抛出该错误,以便ShallowFunction可以捕获该错误并使用DisplayMessageToUser显示用户友好的错误消息。
要实现我想要的目标,遵循的最佳实践是什么?
1)将错误记录在我们尽可能准确地知道发生了什么以及发生的位置的地方。
2)向用户显示用户友好的错误消息。