class MyCustomError(Exception):
def __init__(self, message, error_code):
super().__init__(message)
self.error_code = error_code
try:
# ... код, который может вызвать исключение ...
raise MyCustomError("Произошла ошибка", 500)
except MyCustomError as e:
print(f"Сообщение об ошибке: {e}")
print(f"Код ошибки: {e.error_code}")
В этом примере error_code
является дополнительной информацией об ошибке.
class CustomError(Exception):
def __init__(self, message, error_code, filename=None):
super().__init__(message) # Вызываем конструктор родительского класса
self.error_code = error_code
self.filename = filename
def __str__(self):
base_message = super().__str__()
additional_info = f" (Error Code: {self.error_code}"
if self.filename:
additional_info += f", Filename: {self.filename})"
else:
additional_info += ")"
return base_message + additional_info
try:
raise CustomError("Something went wrong", 123, filename="data.txt")
except CustomError as e:
print(e) # Выведет: Something went wrong (Error Code: 123, Filename: data.txt)
print(f"Error code: {e.error_code}") # Выведет: Error code: 123
if e.filename:
print(f"Filename: {e.filename}") # Выведет: Filename: data.txt
Объяснение: