乐高返回的错误是否与QueryError或ErrNotFound不同?数据库连接错误是什么?
对与ErrNotFound不同的错误进行恐慌并在http处理程序堆栈的顶部进行恢复是一种很好的做法吗?
发布于 2013-10-09 21:36:39
mgo返回的一组错误不受约束,因为它在下面执行了许多操作,这些操作也可能返回错误(DNS解析、连接建立、超时等)。因此,使用mgo处理错误的正确方法与大多数地方相同:处理您确实知道的错误,并对您不了解的错误进行处理。良好的退出包括消除任何本地副作用(关闭/删除本地创建的文件等),然后将错误返回给调用方,可能是使用自定义上下文信息进行修饰或包装。
我不会对这样的错误感到恐慌。恐慌通常发生在不正常的情况下,当开发人员对API做了一些错误,或者环境受到了严重的破坏,最好的做法就是完全停止,例如。与数据库的连接(或任何与网络相关的连接)应该每隔一段时间就会下降,并适当地处理,而不仅仅是记录无法区分的崩溃。
如果您有更多的细节,并想进一步谈谈,请来到邮件列表。
发布于 2013-10-09 10:04:39
我相信你可以用LastError检查任何错误。大多数错误返回函数返回一个应该在函数返回时检查的标准围棋误差。
通常,在Go中,在求助于恐慌/恢复之前,您可能需要一些非常特殊的用例。最好的做法是在错误出现时处理它们。
有关更多信息,请参见错误处理和转到和围棋博客的推迟,恐慌,恢复。
https://stackoverflow.com/questions/19268009
复制相似问题