Ví dụ sau đây rất đơn giản. Tôi muốn thực hiện bản đồ() với chức năng có thể tăng Ngoại lệ. Nó sẽ rõ ràng hơn với một ví dụ:ngoại lệ bản đồ python tiếp tục thực hiện ánh xạ
number_list = range(-2,8)
def one_divide_by(n):
return 1/n
try:
for number, divide in zip(number_list, map(one_divide_by, number_list)):
print("%d : %f" % (number, divide))
except ZeroDivisionError:
# Execution is stopped. I want to continue mapping
pass
Khi tôi thực thi mã này tôi nhận được:
-2 : -0.500000
-1 : -1.000000
Đó là do sự 0 trong danh sách của tôi. Tôi không muốn loại bỏ điều này 0 (bởi vì trong trường hợp thực sự tôi không thể biết đầu tiên nếu tôi sẽ nhận được ngoại lệ). Bạn có biết cách tiếp tục lập bản đồ sau khi ngoại lệ không?
nếu bạn biết những gì giá trị để thay thế cho 'vô hạn' sau đó sử dụng 'thử: return 1/n; ngoại trừ ZeroDivisionError: return yourvalue' – Pynchia