Error handling 多么恐慌啊!生产中

Error handling 多么恐慌啊!生产中,error-handling,rust,Error Handling,Rust,恐慌!似乎是在开发模式下停止程序的正确方法。但是,不应发送显示例外错误消息的程序: thread '<main>' panicked at 'error message: ()', x.rs:785 有没有什么方法可以在不显示面向开发人员的文本的情况下,提前退出带有错误代码的程序?我可以使用process::exit,但我已经读到它不执行清理,所以我们应该使用什么?恐慌!不是停止程序的正确方法 它的唯一目的是在一切都将要南下而你无法恢复的时候中止。如果您希望在任何地方出现错误行为,

恐慌!似乎是在开发模式下停止程序的正确方法。但是,不应发送显示例外错误消息的程序:

thread '<main>' panicked at 'error message: ()', x.rs:785
有没有什么方法可以在不显示面向开发人员的文本的情况下,提前退出带有错误代码的程序?我可以使用process::exit,但我已经读到它不执行清理,所以我们应该使用什么?

恐慌!不是停止程序的正确方法

它的唯一目的是在一切都将要南下而你无法恢复的时候中止。如果您希望在任何地方出现错误行为,请使用Result并通过打印一条好消息并干净地退出来从该行为中恢复

如果你有恐慌!s或断言!它们会触发代码中的错误,您显示的消息是应该显示的唯一正确的内容,因为它是代码中的错误,没有干净的方法从错误中恢复

注意,恐慌!不一定执行清理。如果您惊慌失措,并且在Drop impl中发生另一次惊慌失措,程序就会中止。还有一个rustc的设置,它可以在紧急情况下关闭清理,并在紧急情况下中止

恐慌!不是停止程序的正确方法

它的唯一目的是在一切都将要南下而你无法恢复的时候中止。如果您希望在任何地方出现错误行为,请使用Result并通过打印一条好消息并干净地退出来从该行为中恢复

如果你有恐慌!s或断言!它们会触发代码中的错误,您显示的消息是应该显示的唯一正确的内容,因为它是代码中的错误,没有干净的方法从错误中恢复


注意,恐慌!不一定执行清理。如果您惊慌失措,并且在Drop impl中发生另一次惊慌失措,程序就会中止。还有一个rustc的设置,它可以在紧急情况下关闭清理,并在紧急情况下中止

谢谢!干净地退出->这是我的问题。我已经读到process::exit不干净process::exit不比panic干净!。它只是保证不会试图运行清理代码,而恐慌!可能会尝试根据您的设置运行析构函数只是为了澄清:我知道的干净地退出Rust程序的唯一方法是使所述退出成为代码的显式部分。没有什么魔法能把一切都干净利落地关掉,魔杖挥舞着。您可以尝试在一个单独的监视器进程中使用清理逻辑,但同样,这是您必须自己明确编写的。谢谢!干净地退出->这是我的问题。我已经读到process::exit不干净process::exit不比panic干净!。它只是保证不会试图运行清理代码,而恐慌!可能会尝试根据您的设置运行析构函数只是为了澄清:我知道的干净地退出Rust程序的唯一方法是使所述退出成为代码的显式部分。没有什么魔法能把一切都干净利落地关掉,魔杖挥舞着。您可以尝试在一个单独的监视进程中使用清理逻辑,但同样,这是您必须自己明确编写的内容。请参阅有关的文章。有关错误处理的高级阅读,您也可以考虑阅读。请参阅有关文章。有关错误处理的高级阅读,您也可以考虑阅读。