Tôi không biết liệu đây có phải là "trường hợp sử dụng chính thức hay không, nhưng trường hợp sau đây tạo ra cảnh báo trong Java (có thể tạo thêm lỗi biên dịch nếu trộn lẫn với các return
câu lệnh, dẫn đến mã không thể truy cập được):
while (1 == 2) { // Note that "if" is treated differently
System.out.println("Unreachable code");
}
Tuy nhiên đây là hợp pháp:
while (isUserAGoat()) {
System.out.println("Unreachable but determined at runtime, not at compile time");
}
Vì vậy, tôi thường thấy mình viết một phương thức tiện ích ngớ ngẩn cho cách nhanh nhất để giả mạo một khối mã, sau đó trong quá trình gỡ lỗi tìm tất cả các cuộc gọi đến nó, vì vậy với điều kiện việc triển khai không thể thay đổi điều này có thể được sử dụng cho điều đó.
JLS chỉ ra if (false)
không kích hoạt "mã không thể truy cập" vì lý do cụ thể rằng điều này sẽ phá vỡ hỗ trợ cho các cờ gỡ lỗi, nghĩa là về cơ bản trường hợp sử dụng này (h / t @auselen). ( static final boolean DEBUG = false;
ví dụ).
Tôi thay thế while
cho if
, sản xuất một trường hợp sử dụng tối nghĩa hơn. Tôi tin rằng bạn có thể vượt qua IDE của mình, như Eclipse, với hành vi này, nhưng chỉnh sửa này là 4 năm trong tương lai và tôi không có môi trường Eclipse để chơi.