В приложении winforms в форме Load event добавьте следующую строку:
throw new Exception();
и запустите приложение. Это бежало без проблем. Это называется тихим сбоем, вы можете попытаться добавить сообщения до и после, и вы скоро узнаете, что вместо сбоя приложения оператор throw просто выходит из события Load.
Я уверен, что нет необходимости объяснять, насколько это уродливо и опасно.
Мне было интересно, тем не менее, в (возможно, истории) причинах этого ужасающего поведения. Я уверен, что это не дизайнерское решение, возможно, не выбор, или лень. Кто-нибудь знает?
Был бы рад, если кто-нибудь может указать мне на список событий, которые могут также вызвать сбои.
Вот фрагмент моего кода - я понятия не имею, как это может помочь, но вот оно:
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);
}
}
}
ИЗМЕНИТЬ Кажется, это не происходит со всеми. Я использую: fw 3.5, winforms, vs 2008, vista x64, новый чистый проект winforms, с указанным выше кодом.