引发错误:丑陋的代码......更好的编写方式?
Raising errors: Ugly code... Better way to write?
def positive_int(value):
try:
ivalue = int(value)
except:
raise argparse.ArgumentTypeError("%s is an invalid positive int value" % value)
if ivalue <= 0:
raise argparse.ArgumentTypeError("%s is an invalid positive int value" % value)
return ivalue
只是认为上面的代码非常丑陋。第一部分是错误诱导,另一部分是检查值是否可满足。如果至少其中之一失败,则应引发错误。有没有办法将这些检查串在一起,这样我就不需要重复行了?或者只是一个更好更漂亮的选择?非常感谢:)
如果 try:
块中的值为负,这将引发一个通用异常,导致它重新引发与 int(value)
抛出异常时相同的异常
def positive_int(value):
try:
ivalue = int(value)
if ivalue <= 0:
raise Exception
except:
raise argparse.ArgumentTypeError("%s is an invalid positive int value" % value)
return ivalue
def positive_int(value):
try:
ivalue = int(value)
except:
raise argparse.ArgumentTypeError("%s is an invalid positive int value" % value)
if ivalue <= 0:
raise argparse.ArgumentTypeError("%s is an invalid positive int value" % value)
return ivalue
只是认为上面的代码非常丑陋。第一部分是错误诱导,另一部分是检查值是否可满足。如果至少其中之一失败,则应引发错误。有没有办法将这些检查串在一起,这样我就不需要重复行了?或者只是一个更好更漂亮的选择?非常感谢:)
如果 try:
块中的值为负,这将引发一个通用异常,导致它重新引发与 int(value)
抛出异常时相同的异常
def positive_int(value):
try:
ivalue = int(value)
if ivalue <= 0:
raise Exception
except:
raise argparse.ArgumentTypeError("%s is an invalid positive int value" % value)
return ivalue