带有错误代码和错误消息的自定义Python异常
||
class AppError(Exception):
pass
class MissingInputError(AppError):
pass
class ValidationError(AppError):
pass
...
def validate(self):
\"\"\" Validate Input and save it \"\"\"
params = self.__params
if \'key\' in params:
self.__validateKey(escape(params[\'key\'][0]))
else:
raise MissingInputError
if \'svc\' in params:
self.__validateService(escape(params[\'svc\'][0]))
else:
raise MissingInputError
if \'dt\' in params:
self.__validateDate(escape(params[\'dt\'][0]))
else:
raise MissingInputError
def __validateMulti(self, m):
\"\"\" Validate Multiple Days Request\"\"\"
if m not in Input.__validDays:
raise ValidationError
self.__dCast = int(m)
validate()和__validateMulti()是验证和存储传递的输入参数的类的方法。从代码中可以明显看出,当缺少某些输入参数或某些验证失败时,我引发了一些自定义异常。
我想定义一些自定义错误代码和特定于我的应用的错误消息,例如,
错误1100:\“找不到关键参数。请验证您的输入。\”
错误1101:\“找不到日期参数。请验证您的输入\”
...
错误2100:\“多天参数无效。可接受的值为2、5和7。”
并向用户报告。
如何在自定义异常中定义这些错误代码和错误消息?
如何以我知道要显示的错误代码/消息的方式引发/捕获异常?
(PS:这是针对Python 2.4.3)。
BastienLéonard在此SO注释中提到,您不必总是定义新的ѭ2you或__str__
。默认情况下,参数将放置在self.args中,并由__str__
打印。
因此,我更喜欢的解决方案是:
class AppError(Exception): pass
class MissingInputError(AppError):
# define the error codes & messages here
em = {1101: \"Some error here. Please verify.\", \\
1102: \"Another here. Please verify.\", \\
1103: \"One more here. Please verify.\", \\
1104: \"That was idiotic. Please verify.\"}
用法:
try:
# do something here that calls
# raise MissingInputError(1101)
except MissingInputError, e
print \"%d: %s\" % (e.args[0], e.em[e.args[0]])
没有找到相关结果
已邀请:
2 个回复
笛驮型迸
类的快速示例:
由于您在询问如何使用
,因此这里还有一个示例...
淘圃跺枯替
枚举ErrorCodes用于定义错误代码。 以这样的方式创建异常:将传递的错误代码添加到异常消息的前缀。