在WinForms应用程序,在窗体的Load事件,添加以下行:
throw new Exception();
并运行应用程序。 其运行没有任何问题。 这就是所谓的沉默的失败,你可以尝试之前和之后添加提示消息框,你会很快发现,而不是崩溃的应用程序,throw语句刚刚从Load事件退出。
我敢肯定,没有必要解释如何丑陋的和危险的,这是。
我在(可能是历史)这背后的可怕行为的原因仍然不知道。 我敢肯定,它不是一个设计决策,可能没有选择,或者懒惰。 有谁知道?
会很高兴,如果有人可以点我的事件列表可能会导致seilent失败了。
下面是我的代码片段 - 我不知道它如何帮助 - 但,那就是:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Form f = new Form();
f.Load += new EventHandler((x, y) => { throw new Exception(); });
Application.Run(f);
}
}
}
编辑看来它并不happend给大家。 我使用:FW 3.5,的WinForms,VS 2008,Vista 64位,WinForms的新清洁工程,与上述代码。