Phương thứcA gọi một Phương thứcB mà lần lượt gọi Phương thức.
KHÔNG có xử lý ngoại lệ trong Phương thứcB hoặc Phương thứcC. Nhưng có xử lý ngoại lệ trong Phương thứcA.
Trong Phương thứcC, một ngoại lệ xảy ra.
Bây giờ, ngoại lệ đó đang sủi bọt lên Phương thức, xử lý nó một cách thích hợp.
Điều gì là sai với điều này?
Trong tâm trí của tôi, tại một thời điểm nào đó, người gọi sẽ thực thi Phương thứcB hoặc Phương thức và khi các ngoại lệ xảy ra trong các phương thức đó, những gì sẽ thu được từ việc xử lý các ngoại lệ bên trong các phương thức đó, về cơ bản chỉ là một khối thử / bắt / cuối cùng thay vì chỉ cho phép họ bong bóng lên đến callee?
Tuyên bố hoặc sự đồng thuận xung quanh việc xử lý ngoại lệ là đưa ra khi việc thực thi không thể tiếp tục do điều đó - một ngoại lệ. Tôi hiểu rồi Nhưng tại sao không bắt ngoại lệ xa hơn trên chuỗi thay vì phải thử / bắt khối hoàn toàn.
Tôi hiểu nó khi bạn cần giải phóng tài nguyên. Đó là một vấn đề hoàn toàn khác.
try-catch
khối nào cả.
Result<T>
loại (một loại lưu trữ kết quả của một tính toán hoặc một lỗi) và trả về nó từ các hàm ném khác của bạn. Tuyên truyền một lỗi lên ngăn xếp sẽ đòi hỏi phải đọc mọi giá trị trả về, kiểm tra xem đó có phải là lỗi không và trả về lỗi nếu có.