Tôi đang làm việc với ứng dụng Windows Forms và hava một lớp người quản lý sử dụng System.Timers.Timer để kiểm tra định kỳ dữ liệu từ cơ sở dữ liệu.Làm cách nào để nhận ngoại lệ xảy ra trong sự kiện Hẹn giờ đã trôi qua?
Làm cách nào để nhận ngoại lệ xảy ra trong bộ hẹn giờ Ứng dụng xử lý sự kiện đã giao vào ứng dụng chính? Nếu tôi đang sử dụng mã dưới đây, ngoại lệ của nhận được "nuốt", và ứng dụng chính không bao giờ được nó (ngay cả khi tôi có xử lý cho ThreadException và UnHandledException).
// Main Form
Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
// Manager class
private System.Timers.Timer _timer;
void _timer_Elapsed(object sender, ElapsedEventArgs e)
{
try
{
doSomeDatabaseActions();
}
catch (Exception ex)
{
throw new ApplicationException("How do I get this error back into main thread...", ex);
}
}
Ví dụ mã Xin vui lòng? – hrh
Tôi nghĩ rằng tôi nhận được nó, tôi đã thông qua ngoại lệ cho một chức năng trên chủ đề chính của tôi và sau đó chức năng được sử dụng this.Invoke() trên chức năng trước khi lại ném ngoại lệ. Tôi có hiểu chính xác điều này không? – hrh
Có phương pháp mới nào để phát hiện lỗi không mong muốn tại .net 4.5 không? Nó vẫn còn nuốt và không có anyway để đăng nhập lỗi mà không cần gói toàn bộ _timer_Elapsed bên trong cố gắng bắt? – MonsterMMORPG