Python 2.7.10, похоже, преобразует мою строку в кортеж при броске в исключение. Вот мой пример:Строка Python в исключении, преобразованная в кортеж
class MyError(RuntimeError):
def __init__(self, arg):
self.args = arg
def raiseMyError():
errorCode = 29
errorText = 'Port not ready yet'
exitCodeMessage = 'ERROR {0}: {1}'.format(errorCode, errorText)
# print exitCodeMessage --> print out here and it's a string
raise MyError(str(exitCodeMessage))
try:
raiseMyError()
except MyError as e:
print e.args
создать строку, содержащую код и описание ошибки и использовать это, чтобы построить универсальный встроенный класс исключений. Когда я распечатать exitCodeMessage
переменную перед создается исключение я получаю то, что я ожидал:
ERROR 29: Port not ready yet
Однако след из обработчика исключений дает мне следующее:
('E', 'R', 'R', 'O', 'R', ' ', '2', '9', ':', ' ', 'P', 'o', 'r', 't', ' ', 'n', 'o', 't',
' ', 'r', 'e', 'a', 'd', 'y', ' ', 'y', 'e', 't')
Может кто-нибудь расскажи мне, что здесь происходит и что я могу с этим поделать?
класс 'MyError (RuntimeError): pass' –