当前位置:  开发笔记 > 编程语言 > 正文

什么是Environment.FailFast?

如何解决《什么是Environment.FailFast?》经验,为你挑选了4个好方法。

什么是Environment.FailFast?

它有用吗?



1> cgreeno..:

它用于终止应用程序,它是一个静态方法,可以立即杀死应用程序,而不会被任何异常块捕获.

Environment.FastFail(String)实际上可以是一个很好的调试工具.例如,假设你有一个应用程序只是彻头彻尾的给你一些奇怪的输出.你不知道为什么.你知道这是错的,但是没有任何例外可以帮助你解决问题.好吧,如果您可以访问Visual Studio 2005的Debug-> Exceptions ...菜单项,您实际上可以告诉Visual Studio允许您查看那些第一次机会异常.如果你没有,那么你可以将Environment.FastFail(String)放在异常中,并使用演绎推理和消除过程来找出你的问题所在.

参考


这和`Process.GetCurrentProcess()之间有什么区别.Kill()`?

2> Rodrigo Hahn..:

它还会创建一个转储和事件查看器条目,这可能很有用.



3> Ed Guiness..:

这是一种立即退出应用程序而不会抛出异常的方法.

文档在这里.

在某些安全或数据关键环境中可能很有用.


它向MS报告数据不是一个问题:"然后包括错误报告给微软的消息."

4> Axel Rietsch..:

故障转移可用于可能危及用户数据的情况。假设在数据库引擎中,当您​​检测到内部数据结构的损坏时,唯一明智的做法是尽快停止该过程,以避免向数据库中写入垃圾并冒着破坏数据并丢失用户数据的风险。这是故障转移很有用的一种可能情况。

另一个用途是捕获程序员错误。假设您正在编写一个库,并且某些函数接受在任何情况下都不能为空的指针,也就是说,如果为空,则很明显您存在程序员错误。您可以返回类似E_POINTER的错误,也可以引发一些InvalidArgument异常并希望有人注意,但是通过快速失败,您会更好地吸引他们的注意:-)

请注意,我并没有将示例限制在指针上,您可以将其推广到永远不会发生的任何参数或条件。快速失败最终会导致应用程序质量更高,因为许多错误不再被忽视。

最后,快速失败有助于尽可能忠实地捕获进程状态(随着创建内存转储),尤其是在检测到不可恢复的错误或真正出乎意料的情况时立即快速失败时。

如果允许进程继续进行,例如说“ finally”子句将运行或堆栈将被解卷,并且事物将被破坏或处置,那么在进行内存转储之前,进程的状态可能会发生变化。诸如这样的方法,使得诊断问题的根本原因变得更加困难。

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有