def tai_lich(ban_luu, doc_mang): yield ban_luu, "đang làm mới" try: ban_moi = doc_mang() except TimeoutError: yield ban_luu, "lỗi mạng" else: yield ban_moi, "đã làm mới" def mat_mang(): raise TimeoutError assert list(tai_lich("lịch cũ", mat_mang))[-1] == ("lịch cũ", "lỗi mạng") assert list(tai_lich("lịch cũ", lambda: "lịch mới"))[-1] == ("lịch mới", "đã làm mới") assert list(tai_lich(None, mat_mang))[-1] == (None, "lỗi mạng") print("Kiểm chứng đủ ba luồng làm mới.")