Nó không thể ném ngoại lệ đã kiểm tra vì nó không được khai báo là ném ngoại lệ đã kiểm tra từ phiên bản đầu tiên và quá nguy hiểm để thay đổi nó.
Ban đầu Runnable
chỉ được sử dụng trong gói Thread
và giả định nhà phát triển muốn bắt tất cả các ngoại lệ đã kiểm tra và xử lý thay vì đăng nhập vào System.err
.
Callable
được thêm khi bạn có thể thêm các tác vụ riêng lẻ vào Executor
nơi bạn có thể chụp kết quả theo số Future
và bất kỳ ngoại lệ nào được ném.
Callable
giờ đây cho phép bạn trả lại giá trị và tùy chọn khai báo ngoại lệ đã kiểm tra.
BTW: Một cách để bạn có thể nói rằng bạn không muốn trả lại hàng hoặc ném một ngoại lệ kiểm tra từ một callable là sử dụng cái gì đó như
Callable<Void> callable = new Callable<Void>() {
public Void call() {
// do something
return null;
}
};
Nguồn
2012-07-10 09:14:40
nếu bạn cần trả lại giá trị bạn nên sử dụng Giao diện có thể gọi trong ExecutorService –
Err, bởi vì nó được khai báo không như vậy? – EJP
@downvoter care để giải thích? – Inquisitive