thể trùng lặp:
Handling exceptions from Java ExecutorService tasksở đâu để bắt ngoại lệ ném từ Callable.call()
tôi sử dụng ExecutorService
từ Java phối hợp Chủ đề. Ví bắt đầu đề tôi sử dụng
pool = new ExecutorService(2);
callableResults = pool.invokeAll(threads);
Để thu thập kết quả, tôi sử dụng future.get()
cho mỗi thread. "chuỗi" là Danh sách các đối tượng từ một Lớp thực hiện Callable
và ghi đè call()
.
Hiện tại, tôi gặp sự cố sau. Phương thức call()
thực hiện ném các ngoại lệ cụ thể khác nhau. invokeAll()
và future.get()
chỉ ném InterruptedException
.
Tôi có thể bắt các ngoại lệ cụ thể mà tôi ném vào call()
ở đâu? Hay tôi phải xử lý chúng ở đó? Nếu một trong những ngoại lệ đó được ném, thì kết quả là sau đó là InterruptedException
?
Tôi đã đọc điều này trước đây, nhưng tôi không thấy rằng anh ấy cũng sử dụng Gọi và gọi()? Có lẽ Ive giám sát nó !? chỉnh sửa: chính xác. Ive giám sát nó. lấy làm tiếc. – nano7
Trong câu trả lời này: http://stackoverflow.com/a/2248166/118846 –
Ông sử dụng Runnable nhưng ngoại lệ bắt là như nhau. – Gray