【问题标题】:Is there a way to make an exception for the same error if the previous exception raises an error?如果先前的异常引发错误,是否有办法对相同的错误进行异常处理?
【发布时间】:2021-10-11 23:54:56
【问题描述】:

如果先前的异常引发错误,是否有办法为相同的错误创建异常?我知道这个例子没有意义,但它是证明我的意思的最简单的方法。例如:

import string

a = input('')
try:
    print(str(int(a)+1))
except ValueError:
    print(string.punctuation.index(a))

有没有办法让它工作,所以如果它不是一个数字,如果它在 string.punctuation 中,它会转到 except ValueError 运行,但是如果这引发了 ValueError,那么它会转到另一个 @ 987654325@ 说它不是数字或符号?等等类似这样的东西,但在一个有效的代码中:

import string

a = input('')
try:
    print(str(int(a)+1))
except ValueError:
    print(string.punctuation.index(a))
except ValueError:
        print('Not a number or symbol!')

【问题讨论】:

    标签: python exception


    【解决方案1】:

    您需要在 except 中添加另一个 try 块来捕获第二个 ValueError

    import string
    
    a = input()  # no need for an empty arg
    try:
        print(int(a) + 1)  # no need for explicit str conversion
    except ValueError:
        try:
            print(string.punctuation.index(a))
        except ValueError:
            print('Not a number or symbol!')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-16
      • 2022-01-19
      • 2017-10-11
      • 2014-01-08
      • 2014-04-06
      • 2013-12-27
      • 2013-05-30
      相关资源
      最近更新 更多