Trong hầu hết các trường hợp, có thể bắt ngoại lệ trong Java, thậm chí là các ngoại lệ không được kiểm soát. Tuy nhiên, nó không nhất thiết phải làm một cái gì đó về nó (ví dụ như trong bộ nhớ).Khi nào thì một ứng dụng sẽ gặp sự cố do ngoại lệ trong Java (vấn đề thiết kế)?
Đối với các trường hợp khác, vấn đề tôi đang cố giải quyết là nguyên tắc thiết kế. Tôi đang cố gắng thiết lập một nguyên tắc thiết kế hoặc một bộ quy tắc cho biết khi nào người ta nên từ bỏ một tình huống đặc biệt, ngay cả khi nó được phát hiện kịp thời. Mục tiêu đang cố gắng không làm hỏng ứng dụng càng nhiều càng tốt.
Có ai đó đã suy nghĩ và truyền đạt về điều này không? Tôi đang tìm kiếm các trường hợp cụ thể chung và các giải pháp có thể, hoặc quy tắc ngón tay cái.
CẬP NHẬT
Gợi ý cho đến nay:
- Ngừng chạy nếu sự liên lạc dữ liệu có thể bị tổn hại
- Ngừng chạy nếu dữ liệu có thể bị xóa
- Ngừng chạy nếu bạn không thể làm bất cứ điều gì về nó (hết bộ nhớ ...)
Dừng chạy nếu dịch vụ chính không khả dụng hoặc beco mes không có sẵn và không thể được khởi động lại
Một phương pháp/dịch vụ nên kiểm tra xem nó có thể thực hiện nhiệm vụ của mình từ một trạng thái ổn định, nếu không nó sẽ thông báo cho người sử dụng (đăng nhập) và không làm gì cả
- Nếu ứng dụng phải được dừng lại , làm suy giảm như một cách duyên dáng càng tốt
- sử dụng rollbacks trong các giao dịch db
- ngoại lệ tùy chỉnh có thể được sử dụng để đưa ra lời khuyên về làm thế nào để giải quyết tình hình bằng cách xử lý
- Đăng thông tin càng nhiều có liên quan như bạn có thể
- Thông báo cho các nhà phát triển
Preserve nhà nước và sự liên lạc dữ liệu càng nhiều càng tốt, bạn có thể
Sửa nhanh có thể gây hại, khi gỡ lỗi, chúng ta hãy rõ hơn về vụ tai nạn ứng dụng và phân tích chi tiết những gì gây ra nó
Nếu ứng dụng của bạn là quan trọng (ví dụ máy chủ thí điểm một nhà máy) ứng dụng của bạn phải 1) điện thoại cho người sẽ phải sửa chữa nó 2) chạy miễn là nó chắc chắn không xóa tất cả mọi thứ (dữ liệu mạch lạc gần như không bao giờ có thể được bị xâm phạm). –
Lý tưởng nhất là ứng dụng của bạn sẽ không bao giờ gặp sự cố. Tuy nhiên, ứng dụng của bạn sẽ thất bại một cách duyên dáng khi một thành phần như cơ sở dữ liệu hoặc máy ảnh bị thiếu hoặc không thể truy cập được. –
Tôi đã nghĩ rằng, đối với rất nhiều RuntimeExceptions nghiêm trọng, bạn sẽ không có bất kỳ sự lựa chọn nào về việc liệu bạn có cho phép nó sụp đổ hay không, trừ khi bạn quấn bit mở mã trong khối try ... catch. –