Tôi vừa mới biết rằng |
được sử dụng để bắt nhiều ngoại lệ trong cùng một khối; |
là toán tử bitwise cho OR. Trong trường hợp này, nó vẫn được sử dụng như một toán tử bitwise hay nó có một ý nghĩa khác khi trong ngữ cảnh?Tại sao toán tử OR bitwise (|) được sử dụng khi bắt nhiều ngoại lệ trong Java?
Trả lời
Trong trường hợp này, nó vẫn được sử dụng như một toán tử bitwise hay nó có ý nghĩa khác khi trong ngữ cảnh?
Nó có ý nghĩa khác - mặc dù nó có cùng "hương vị" ở chỗ đó là "nếu ngoại lệ X bị bắt hoặc ngoại lệ Y bị bắt hoặc ngoại lệ Z".
Trong JLS section 14.20|
chỉ được bao gồm theo nghĩa đen trong ngữ pháp - nó không phải là toán tử OR trong ngữ cảnh này.
Cảm ơn! Điều này tương tự như cách toán tử '+' hoạt động; khi nó được sử dụng trong các chuỗi, nó liên kết, trong khi với các con số nó thêm chúng - về mặt kỹ thuật nó được thêm vào trong cả hai trường hợp, phải không? – platelminto
@platelminto: Không hoàn toàn - toán tử + vẫn là toán tử nhị phân + theo cú pháp thông thường; nó chỉ là toán hạng làm cho nó nối chuỗi. –
- 1. Tại sao tôi không thể ném ngoại lệ trong khi sử dụng toán tử bậc ba
- 2. Tại sao bitwise OR toán tử được sử dụng trong cờ enum với ý nghĩa VÀ
- 3. Tại sao XOR thường được sử dụng trong java hashCode() nhưng một toán tử bitwise khác hiếm khi được sử dụng?
- 4. Sử dụng toán tử Bitwise trên cờ
- 5. Khi nào tôi nên sử dụng toán tử bitwise?
- 6. HQL để CriteriaQuery khi sử dụng toán tử Bitwise
- 7. Tuyên bố có điều kiện sử dụng toán tử bitwise
- 8. Tại sao chương trình này không bắt được ngoại lệ?
- 9. sử dụng các toán tử bitwise để đóng gói nhiều giá trị trong một int
- 10. Tại sao không bắt ngoại lệ bắt RuntimeException?
- 11. Cách bắt ngoại lệ (ActivityNotFoundException) trong khi sử dụng LinkMovementMethod
- 12. Tại sao không thể bắt ngoại lệ bên trong?
- 13. Tại sao Elm sử dụng toán tử '++' để nối chuỗi?
- 14. bitwise không phải là toán tử
- 15. Làm thế nào để sử dụng toán tử bitwise để chuyển nhiều giá trị Integer vào một hàm cho Java?
- 16. Ứng dụng bị treo khi Crashlytics bắt được ngoại lệ
- 17. Bắt mọi ngoại lệ trong ứng dụng web Java EE
- 18. Tại sao tôi nhận được "Ngoại lệ được chỉ định cho thuật toán không hợp lệ" ngoại lệ
- 19. Thứ tự bắt ngoại lệ trong Java
- 20. Bắt với nhiều ngoại lệ không bắt ngoại lệ trong xây dựng obfuscated
- 21. Tại sao ngoại lệ C++ của tôi không bị bắt?
- 22. ngoại lệ xử lý trong java sử dụng cuối cùng
- 23. Tại sao ngoại lệ win32 không bị bắt bởi cơ chế xử lý ngoại lệ C#
- 24. JAVA + thử bắt (FileNotFoundException e) sẽ bắt (Ngoại lệ e)?
- 25. Tại sao bắt ngoại lệ được kiểm tra cho phép đối với mã không loại trừ ngoại lệ?
- 26. Tại sao tải biểu mẫu không thể bắt ngoại lệ?
- 27. Tại sao tôi cần phải #include <typeinfo> khi sử dụng toán tử typeid?
- 28. Bắt ngoại lệ trong ứng dụng javax.swing
- 29. Tại sao chúng ta cần sử dụng toán tử shift trong java?
- 30. Tại sao phục hồi trong tương lai không bắt được ngoại lệ?
Tại sao bạn nghĩ đó là toán tử * bitwise * OR chứ không phải toán tử * boolean * OR? Nó không phải, nó chỉ là một cấu trúc cú pháp, có nghĩa là ngoại lệ này * HOẶC * ngoại lệ * HOẶC * ..., và là một lựa chọn rất hợp lý của biểu tượng, bạn có nghĩ vậy không? – Andreas
Nhưng không phải là '||' được sử dụng như toán tử OR boolean? – platelminto
Điều đó nữa, vâng. Cả hai '|' và '||' là toán tử OR boolean. Tôi sẽ để nó cho bạn đọc tài liệu để tìm ra sự khác biệt là gì. Lưu ý rằng điều tương tự cũng áp dụng cho toán tử AND '&' và '&&'. – Andreas