【发布时间】:2015-02-24 12:54:55
【问题描述】:
如何在流星中监听未捕获的异常错误?
错误当然是特定于原因的,所以请您提供一个伪样式代码/解释来说明处理此错误的概念。
一个示例用例:
用户单击“注销”,但出现未捕获的异常,并且用户未注销,因此与服务器的连接保持打开状态。
【问题讨论】:
标签: javascript node.js meteor error-handling uncaught-exception
如何在流星中监听未捕获的异常错误?
错误当然是特定于原因的,所以请您提供一个伪样式代码/解释来说明处理此错误的概念。
一个示例用例:
用户单击“注销”,但出现未捕获的异常,并且用户未注销,因此与服务器的连接保持打开状态。
【问题讨论】:
标签: javascript node.js meteor error-handling uncaught-exception
您可以使用回调,它们通常提供reason 参数。例如
Meteor.call("some_random_non_existent_method", function(err, result) {
if(err) return alert(err.reason)
});
大多数流星回调都有error 参数。随着注销其Meteor.logout(function(err) { ... })
您应该能够捕捉到大多数此类错误。如果要捕获所有错误,可以使用 try..catch。 try 块中的所有内容都将尝试运行,直到抛出错误。你可以catch这个并向用户提供反馈。
try {
//This will throw an error
this.run_something.go_make_error()
}catch(e) {
alert("There was an error running this");
}
【讨论】:
process.exit() 仅适用于服务器端。它将完全退出应用程序。如果用户注销时出现错误,最好的办法是让他们知道问题所在并让他们重试。尝试再次注销不太可能有帮助。例如,它不会注销的一种情况是,如果互联网被切断,但在这种情况下除了提醒用户他们可以先重新连接以注销之外,没有其他方法可以提供帮助。