Для Django-Server я использую несколько пользовательских кодов ошибок, заголовков ошибок и описаний, возможно, за ними могут следовать другие поля.
Сейчас я использую базовый глобальный словарь.
errordict = {'512':
{
'errorno': 512,
'errordescr': "Database Down",
'toDo': "Restart the database, Server: "+serveradr
},
'513' : ....
}
А в коде что-то вроде:
def handleError(s_err):
curerr=errordict[s_err]
logging.error("Error "+s_err+" occurred: "+curerr['errordescr'])
Использование выглядит так:
try:
findEntry(s_id)
except NoSuchEntryEx as nsee:
s_err="513"
handleError(s_err)
return HttpResponse(render_to_string('error.html', {
'errorno': s_err,
'errordescr': mark_safe(str(nsee)
+ const.OUTPUT_NEWLINE),
'toDo': errordict[s_err]['toDo']
}))
Я не доволен этим и предпочел бы определить его собственный класс, который с текущей точки зрения будет состоять только из одного растущего dict-объекта, что тоже не кажется хорошей идеей.
Это, конечно, постоянно, каждое изменение жестко запрограммировано.