Chúng tôi sử dụng hàm tạo ngoại lệ cụ thể nhất phù hợp với vấn đề cụ thể của chúng tôi thay vì đưa ra các ngoại lệ chung chung. Để nắm bắt ngoại lệ cụ thể của chúng tôi, chúng tôi sẽ phải bắt tất cả các ngoại lệ cụ thể hơn khác phân lớp nó.
Chúng ta nên nêu ra các ngoại lệ cụ thể và xử lý các ngoại lệ cụ thể tương tự.
Để nâng cao các ngoại lệ cụ thể, chúng tôi sử dụng câu lệnh raise như sau.
Ví dụ
import sys try: f = float('Tutorialspoint') print f raise ValueError except Exception as err: print sys.exc_info()
đầu ra
Chúng tôi nhận được kết quả sau
(<type 'exceptions.ValueError'>, ValueError('could not convert string to float: Tutorialspoint',), <traceback object at 0x0000000002E33748>)
Chúng tôi có thể phát sinh lỗi ngay cả với các đối số như ví dụ sau
Ví dụ
try: raise ValueError('foo', 23) except ValueError, e: print e.args
đầu ra
Chúng tôi nhận được kết quả sau
('foo', 23)