Каковы наилучшие методы для создания исключений? Я только что видел это, и я не знаю, должен ли я быть в ужасе или как это. Я несколько раз читал в книгах, что исключения никогда не должны содержать строку, потому что сами строки могут генерировать исключения. Любая реальная правда?
В основном из моего понимания из сценариев является то, что это было сделано, поэтому все внутренние библиотеки Python будут иметь общий формат сообщений об ошибках (что-то, что отчаянно необходимо), поэтому я могу понять, почему создание строки сообщения об ошибках является хорошей идеей. (Почти каждый метод выдает исключения из-за полной потребности в недействительном прохождении).
Этот код выглядит следующим образом:
"""
Base Exception, Error
"""
class Error(Exception):
def __init__(self, message):
self.message = message
def __str__(self):
return "[ERROR] %s\n" % str(self.message)
def log(self):
ret = "%s" % str(self.message)
if(hasattr(self, "reason")):
return "".join([ret, "\n==> %s" % str(self.reason)])
return ret
class PCSException(Error):
def __init__(self, message, reason = None):
self.message = message
self.reason = reason
def __str__(self):
ret = "[PCS_ERROR] %s\n" % str(self.message)
if(self.reason != None):
ret += "[REASON] %s\n" % str(self.reason)
return ret
Это только верхушка айсберга, но может ли кто-нибудь дать мне некоторое представление о том, что делает эту ужасную идею? Или, если процесс кодирования с гораздо лучшим исключением/стиль.