我有一个主程序调用的函数:
try:
someFunction()
except:
print "exception happened!"
Run Code Online (Sandbox Code Playgroud)
但是在函数执行过程中它会引发异常,因此会跳转到该except部分.
我怎样才能确切地看到发生了什么someFunction()导致异常发生?
class AppError(Exception):
pass
class MissingInputError(AppError):
pass
class ValidationError(AppError):
pass
Run Code Online (Sandbox Code Playgroud)
...
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)
Run Code Online (Sandbox Code Playgroud)
validate()和__validateMulti()是验证和存储传递的输入参数的类的方法.从代码中可以看出,当一些输入参数丢失或某些验证失败时,我会引发一些自定义异常.
我想定义一些特定于我的应用程序的自定义错误代码和错误消息,比如
错误1100:"找不到关键参数.请验证您的输入."
错误1101:"找不到日期参数.请验证您的输入"
...
错误2100:"多天参数无效.接受的值为2,5和7."
并向用户报告.
(PS:这是Python 2.4.3).
巴斯蒂安伦纳德提到这个SO评论,你并不需要总是定义一个新的 …