Có nên sử dụng các khối bắt để viết logic tức là xử lý điều khiển luồng vv? Hay chỉ để ném ngoại lệ? Liệu nó có ảnh hưởng đến hiệu quả hoặc khả năng duy trì của mã?
Các tác dụng phụ (nếu có) của logic viết trong khối bắt là gì?
CHỈNH SỬA:
Tôi đã thấy một lớp Java SDK trong đó họ đã viết logic bên trong khối bắt. Ví dụ: đoạn trích được lấy từ java.lang.Integer
lớp):
try {
result = Integer.valueOf(nm.substring(index), radix);
result = negative ? new Integer(-result.intValue()) : result;
} catch (NumberFormatException e) {
String constant = negative ? new String("-" + nm.substring(index))
: nm.substring(index);
result = Integer.valueOf(constant, radix);
}
EDIT2 :
Tôi đã trải qua một hướng dẫn trong đó họ coi đó là một lợi thế của việc viết logic các trường hợp ngoại lệ bên trong các ngoại lệ:
Các ngoại lệ cho phép bạn viết luồng chính của mã của mình và xử lý các trường hợp ngoại lệ ở nơi khác.
Bất kỳ hướng dẫn cụ thể khi viết logic trong khối bắt và khi nào không?