Bắt ngoại lệ
Trước khi bạn tự viết các ngoại lệ tùy chỉnh, hãy đảm bảo bạn nắm vững nền tảng về xử lý ngoại lệ.
Trong bài này, bạn được cung cấp một hàm invert_at_index(x, ind) nhận hai đối số, một danh sách x và một chỉ số ind, và lấy nghịch đảo phần tử của danh sách tại chỉ số đó. Ví dụ, invert_at_index([5,6,7], 0) trả về 1/5, tức 0.2.
Mục tiêu của bạn là triển khai xử lý lỗi để đưa ra các ngoại lệ tùy chỉnh dựa trên loại lỗi xảy ra.
Bài tập này là một phần của khóa học
Nhập môn Lập trình Hướng đối tượng với Python
Hướng dẫn bài tập
Sử dụng mẫu try - except - except (với hai khối except) bên trong hàm để bắt và xử lý hai ngoại lệ như sau:
trythực thi đoạn mã như hiện tại, trả về1/x[ind].- nếu xảy ra
ZeroDivisionError, in"Cannot divide by zero!", - nếu xảy ra
IndexError, in"Index out of range!"
Bạn biết mình làm đúng khi mã chạy không lỗi và đầu ra trên console là:
0.16666666666666666
Cannot divide by zero!
None
Index out of range!
None
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# Modify the function to catch exceptions
def invert_at_index(x, ind):
____:
return 1/x[ind]
_____:
print("____")
____:
print("____")
a_list = [5,6,0,7]
# Works okay
print(invert_at_index(a_list, 1))
# Potential ZeroDivisionError
print(invert_at_index(a_list, 2))
# Potential IndexError
print(invert_at_index(a_list, 5))