new Timer().scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
System.out.println("run");
throw new SomeRandomException();
}
}, 1000, 1000);
Output: chạy (ngoại lệ được ném)Java hẹn giờ lớp: nhiệm vụ hẹn giờ dừng lại để thực hiện nếu thuộc một trong các nhiệm vụ ngoại lệ được ném
Đây là vấn đề: Tôi cần một công việc hẹn giờ để kiểm tra cụ thể điều kiện trong cơ sở dữ liệu (hoặc cái gì khác). Nó làm việc tốt, nhưng đôi khi cơ sở dữ liệu (hoặc cái gì đó khác) trả về một số lỗi, ngoại lệ được ném và bộ đếm thời gian bị treo, và sau đó không có tác vụ hẹn giờ đơn nào được thực hiện lại. Có một số cài đặt Bộ hẹn giờ tiếp tục hoạt động sau khi ngoại lệ được ném trong run()
.
tôi có thể
new Timer().scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
try {
System.out.println("run");
throw new SomeRandomException();
} catch (Exception e) {
System.out.println("dummy catch");
}
}
}, 1000, 1000);
nhưng điều này dường như què.
Cách thay thế khác là viết triển khai thực hiện của riêng lớp Timer, nuốt ngoại lệ của phương thức chạy (có vẻ như không đúng).
Bạn cần phải bắt 'Error's cũng hay họ âm thầm giết nhiệm vụ của bạn là tốt. –