Tôi có một ứng dụng chạy quá trình xử lý hàng loạt trong đó nhiều trường hợp ngoại lệ có thể bị ném. Nếu một ngoại lệ không quan trọng được ném trong một mục trong lô, tôi chỉ muốn đăng nhập và tiếp tục, vì vậy chúng tôi có thể khắc phục vấn đề sau trong khi cho phép các mục hàng loạt khác tiếp tục.Tôi nên bắt những ngoại lệ nào?
Một số ngoại lệ, chẳng hạn như OutOfMemoryException
, đang tàn phá toàn bộ ứng dụng và những điều này tôi muốn quay lại để chúng bong bóng đến trình xử lý ngoại lệ toàn cục, sẽ ghi nhật ký và dừng ứng dụng. Vì vậy, câu hỏi của tôi là, có một danh sách ngắn các trường hợp ngoại lệ quan trọng mà tôi có thể trả lại trong trình xử lý ngoại lệ của mình trong khi triệt tiêu (sau khi đăng nhập) mọi thứ khác không? Không.
Cảm ơn!
Edit: Để xây dựng một chút, đây là cấu trúc cơ bản của chương trình của tôi
foreach(var item in longItemList)
{
try
{
bigDynamicDispatchMethod(item);
}
catch(Exception ex)
{
logException(ex);
}
}
Có khả năng một số lượng lớn các trường hợp ngoại lệ có thể được ném bởi vì vòng này là khá nhiều ở cấp cao nhất ứng dụng của tôi. 99% mã trong dự án của tôi nằm phía sau phương thức công văn. Tôi xử lý ngoại lệ hợp lý ở các mức thấp hơn, nhưng các lỗi vẫn hoạt động theo cách của họ và tôi không muốn dừng các quy trình không liên quan khác trong lô sau khi một ngoại lệ được ném ra.
Cố gắng tìm những ngoại lệ nào có thể được ném ở mọi nơi khác trong ứng dụng của tôi có vẻ như một nhiệm vụ khó khăn, và dường như sẽ đơn giản hơn nếu có danh sách đen các trường hợp ngoại lệ quan trọng.
Có cách nào tốt hơn để cấu trúc ứng dụng của tôi để giải quyết vấn đề này không? Tôi đang mở để gợi ý.
thể trùng lặp của [những loại ngoại lệ không bắt?] (http://stackoverflow.com/questions/5507836/which-types- của ngoại lệ-không-để-bắt) –