【问题标题】:How to deal with an uncaught exception error in Meteor?如何处理 Meteor 中未捕获的异常错误?
【发布时间】:2015-02-24 12:54:55
【问题描述】:

如何在流星中监听未捕获的异常错误?

错误当然是特定于原因的,所以请您提供一个伪样式代码/解释来说明处理此错误的概念。

一个示例用例:

用户单击“注销”,但出现未捕获的异常,并且用户未注销,因此与服务器的连接保持打开状态。

【问题讨论】:

    标签: javascript node.js meteor error-handling uncaught-exception


    【解决方案1】:

    您可以使用回调,它们通常提供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");
    }
    

    【讨论】:

    • 所以如果捕获(或更具体地说,匹配 Meteor.logout 错误回调对象中未捕获的异常条件,我将如何注销用户?我是否在函数中的警报消息?然后可能会提醒用户再次尝试注销?
    • @CodeCandy 请记住process.exit() 仅适用于服务器端。它将完全退出应用程序。如果用户注销时出现错误,最好的办法是让他们知道问题所在并让他们重试。尝试再次注销不太可能有帮助。例如,它不会注销的一种情况是,如果互联网被切断,但在这种情况下除了提醒用户他们可以先重新连接以注销之外,没有其他方法可以提供帮助。
    • 谢谢,这个解决方案很有意义。
    猜你喜欢
    • 1970-01-01
    • 2016-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-10
    • 2011-10-27
    相关资源
    最近更新 更多