Python cũng cho phép bạn tạo các ngoại lệ của riêng mình bằng cách dẫn xuất các lớp từ các ngoại lệ built-in tiêu chuẩn.
Đây là một ví dụ liên quan đến RuntimeError. Ở đây, một lớp được tạo là subclass của RuntimeError. Điều này hữu ích khi bạn cần hiển thị thông tin cụ thể hơn khi một ngoại lệ bị bắt.
Trong khối try, ngoại lệ do người dùng định nghĩa được raise và bắt trong khối except. Biến e được dùng để tạo một instance của lớp Networkerror.
class Networkerror(RuntimeError):
def __init__(self, arg):
self.args = arg
Vì vậy, một बार bạn đã định nghĩa lớp trên, bạn có thể raise ngoại lệ như sau:
try:
raise Networkerror("Bad hostname")
except Networkerror, e:
print e.args