Có cách giải quyết nào có thể khôi phục mã trong Java không?Java: Mã Rollback
Ví dụ tôi muốn mã dưới đây sẽ in ra i = 1
nhưng không 2
: (Khi một ngoại lệ xảy ra)
int i = 1;
try {
i = 2;
int j = 10/0;
} catch (Exception ex) {}
System.out.print("i = " + i);
Tôi không nghĩ logic này là thực tế vô dụng cho lập trình viên. Và tôi không nghĩ rằng điều này là rất khó để xử lý cho trình biên dịch. Ví dụ:
Ví dụ: có thể lưu tạm thời i = 1
trong bộ nhớ và sau khi xảy ra trường hợp ngoại lệ, quay lại giá trị của nó là 1
thay vì 2
. (Sẽ tốt hơn nếu chúng tôi có rollback/catch chẳng hạn)
Ngoài ra, bạn sẽ không muốn bắt tất cả ngoại lệ, nhưng chỉ là những trường hợp quan tâm, chia cho số không trong trường hợp này. Ngoại lệ khác không nên bị bắt vì vậy người gọi có cơ hội để xử lý chúng (hoặc để cho họ đi qua vì vậy các ứng dụng có cơ hội để chấm dứt một cách tiêu chuẩn hóa). – TheBlastOne
Đó là một ví dụ rất đơn giản mà tôi đã viết. Trong những tình huống phức tạp, chúng tôi không thể dễ dàng xử lý nó theo cách bạn nói. – Natasha
Tại sao không? * Đặc biệt * trong các hệ thống phân cấp cuộc gọi phức tạp, tôi khuyên bạn nên giữ một hình ảnh rõ ràng về người bắt và bỏ qua (hoặc thông qua) cái gì. – TheBlastOne