Đây có phải là lỗi trong Winforms không? (Thử nghiệm trên cả VS2008 và VS2010)Tại sao tải biểu mẫu không thể bắt ngoại lệ?
private void Form1_Load(object sender, EventArgs e)
{
throw new Exception("Hey");
}
tôi không nhận được bất kỳ lỗi trong mã đó, một thời gian trước, tôi đang cố gắng để xây dựng một giải pháp cho vấn đề này Parse a number from a string with non-digits in between
Và tôi làm mã này trong Form1_Load:
private void Form1_Load(object sender, EventArgs e)
{
MessageBox.Show("X");
string s = "12ACD";
string t = s.ToCharArray().TakeWhile(c => char.IsDigit(c)).ToArray().ToString();
MessageBox.Show("Y");
int n = int.Parse(t);
MessageBox.Show(n.ToString());
}
Tôi tự hỏi tại sao nó không hiển thị số. Sau đó, trên di chuyển mã để button1_Click ...
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("X");
string s = "12ACD";
string t = s.ToCharArray().TakeWhile(c => char.IsDigit(c)).ToArray().ToString();
MessageBox.Show("Y");
int n = int.Parse(t);
MessageBox.Show(n.ToString());
}
... sau đó tôi nhận thấy rằng có một lỗi: chuỗi đầu vào không phải là trong một định dạng chính xác.
Tại sao Form1_Load không phát hiện bất kỳ ngoại lệ nào, tại sao nó lại không thành công? Mã chỉ cần thoát ra khỏi form1_load tại chuỗi t = s.ToCharArray() TakeWhile ...
Tôi đã sửa thành công hành vi này trên máy phát triển Win7 SP1 x64 của mình. Xem [câu trả lời này] (http://stackoverflow.com/a/11997142/119527) để biết cách thực hiện. –