我有一个情况,用户可能会提供错误的数据来获取可能不存在的数据点。目前,当出现这些问题时引发的错误类型不清楚或不直观。
在我的API中,我打算创建一个错误来在UI中捕获(或者让UI框架处理并直接向用户报告,我已经测试过并知道可以工作):
class DataError(ValueError):
'''
raise this error with a message of what was wrong,
will also be caught when catching general ValueErrors
or other Exceptions that ValueError subclasses
'''
使用方法:
if user_input not in accepted_values:
raise DataError('bad user_input: {0}'.format(user_input))
我对自己的方法非常有信心,希望代码无法被攻击。我知道这种方式的优点是,我可以捕获特定的异常而不隐藏其他异常。但我想不出任何缺点。
与仅仅使用 ValueError
抛出错误信息相比,做法的缺点是什么?
DataError
和ValueError
中不同地处理它们,那么这可能被认为是多余的。 - danorequests.exceptions
。 - Lukas GrafDataError
。如果对Mike来说足够好,那对我也足够好。 - Lukas Graf