En una aplicación de Windows Forms, en el evento Load de un formulario, agregue la siguiente línea:fallos silenciosos en C#, aparentemente excepciones no controladas que no se cuelga el programa
throw new Exception();
y ejecutar la aplicación. Corrió sin problemas. Esto se llama falla silenciosa, puede intentar agregar cuadros de mensaje antes y después, y pronto descubrirá que en lugar de bloquear la aplicación, la instrucción throw simplemente sale del evento Load.
Estoy seguro de que no hay necesidad de explicar qué tan feo y peligroso es esto.
Me preguntaba, sin embargo, en las razones (probablemente históricas) detrás de este comportamiento aterrador. Estoy seguro de que no es una decisión de diseño, probablemente sin opción, o flojera. ¿Alguien sabe?
Estaría contento si alguien me puede indicar una lista de eventos que también pueden causar fallas graves.
He aquí un fragmento de mi código - No tengo ni idea de lo que podría ayudar - pero, aquí está:
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);
}
}
}
EDITAR Parece que no sucedió a todo el mundo. Uso: fw 3.5, winforms, vs 2008, vista x64, nuevo proyecto limpio de winforms, con el código mencionado anteriormente.
¿Puede explicar mejor su problema con un fragmento de su controlador de eventos OnLoad para su formulario. Además, ¿tiene un controlador UnhandledException dentro de este dominio de aplicación? Si esta es la forma principal de la aplicación y no se puede cargar porque arrojó una excepción no controlada, ¿qué esperaba que sucediera? Sospecho que se invocará el controlador de eventos no controlados en este caso. –
¿Qué versión de windows estás usando? –
En realidad volví a votar su pregunta anterior, está mal escrita Y arrogante ... – Blindy