引发错误:丑陋的代码......更好的编写方式?

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