public partial class Form1 : Form
{
public class abc
{
public static decimal Divide(int a,int b)
{
return a / b;
}
}
public Form1()
{
InitializeComponent();
numericUpDown1.ValueChanged += NumericUpDown1_ValueChanged;
numericUpDown1.Controls[1].Leave += Form1_Leave;
}
private void Form1_Leave(object sender, EventArgs e)
{
//abc.Divide(15, 0);
}
private void NumericUpDown1_ValueChanged(object sender, EventArgs e)
{
abc.Divide(15, 0);
}
}
И Program.cs имеет блок catch, как показано ниже.
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.ThreadException += Application_ThreadException;
try
{
Application.Run(new Form1());
}
catch
{
MessageBox.Show("Exception Hadled");
}
}
private static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
{
MessageBox.Show("Exception Hadnled");
}
}
В приведенном выше примере окно сообщения не запускается. Но если я использую функцию «выход», выполняется захват события. Почему событие ValueChanged не является исключением для внешнего мира?
try/catch
вокругApplication.Run(new Form1());
- person Jimi   schedule 22.04.2020