finally
Bài học 5 trên 16 trong khóa học Xử lý ngoại lệ trong Python của Coddy.
Còn có một khối tùy chọn khác gọi là finally.
Khối này luôn được thực thi. Khối này chạy dù câu lệnh try có tạo ra ngoại lệ hay không.
try:
f = open("data.txt",encoding='utf-8')
except FileNotFoundError:
print("File does not exist")
else:
print(f.read())
finally:
print("cleanup activities like closing file") Trong ví dụ trên, ngoại lệ sẽ xảy ra nếu data.txt không tồn tại và khối except sẽ được thực thi.
Nếu tệp tồn tại, chương trình sẽ chuyển đến khối else vì không có ngoại lệ và trình thông dịch sẽ đọc dữ liệu.
Khối finally được thực thi trong cả hai trường hợp để thực hiện các hoạt động dọn dẹp, chạy code bắt buộc, thao tác hệ thống, giải phóng bộ nhớ, v.v.
Thử thách
DễViết một hàm để thêm các cặp khóa-giá trị mới vào từ điển đã cho. Xử lý TypeError khi người dùng nhập khóa có thể thay đổi, tức là danh sách, và in ra "Cannot give mutable keys". Nếu thêm cặp khóa-giá trị thành công, hãy in ra giá trị đã thêm cho khóa mới. Cuối cùng, in ra từ điển sau khi hoàn tất thao tác.
Tự làm thử
data = {
'John' : 89,
'Mike' : 91,
'Angela':85,
}
def insert_data(key,value):
#Thêm cặp khóa và giá trị vào data
#Xử lý TypeError nếu khóa có thể thay đổi, chẳng hạn như danh sách (list)
#In ra từ điển (dictionary) đã cập nhật sau khi hoàn tất thao tác
Tất cả bài học trong Xử lý ngoại lệ trong Python
4Tùy chỉnh và thực hành tốt
Tùy chỉnh thông báo lỗi truy vết3Ngoại lệ do người dùng định nghĩa
Các loại ngoại lệPhát sinh ngoại lệNgoại lệ do người dùng định nghĩaBài tập xử lý ngoại lệ 1Ví dụ xử lý ngoại lệ 2Ví dụ xử lý ngoại lệ 3Tự luyện tập: Trình biên dịch Python online