Tôi nên kiểm tra if
một cái gì đó là hợp lệ hoặc chỉ try
để làm điều đó và bắt ngoại lệ?
- Có tài liệu vững chắc nào nói rằng một cách được ưa thích không?
- Là một cách nhiều pythonic ?
Ví dụ: tôi nên:
if len(my_list) >= 4:
x = my_list[3]
else:
x = 'NO_ABC'
Hoặc là:
try:
x = my_list[3]
except IndexError:
x = 'NO_ABC'
Một số suy nghĩ ...
PEP 20 nói:
Lỗi không bao giờ nên âm thầm vượt qua.
Trừ khi im lặng rõ ràng.
Có nên sử dụng try
thay vì một lỗi if
được hiểu một cách lặng lẽ? Và nếu vậy, bạn có im lặng rõ ràng bằng cách sử dụng nó theo cách này, do đó làm cho nó ổn?
Tôi không đề cập đến các tình huống mà bạn chỉ có thể làm mọi thứ 1 cách; ví dụ:
try:
import foo
except ImportError:
import baz
if index in mylist
kiểm tra chỉ số wether là một yếu tố của danh sách của tôi, không phải là một chỉ mục có thể. Bạn sẽ muốnif index < len(mylist)
thay thế.