我是 Python 新手。如果我的问题听起来很愚蠢,请原谅我。
下面的代码会引发错误,但 try/except 不会捕获该错误。我已经检查了很多次,但看不出问题所在。
如果这里的任何大师可以向我展示问题,我将非常感激。
感谢您的宝贵时间。
import decimal
try:
Amount = str(decimal.Decimal('2.675a').quantize(decimal.Decimal('.01'), rounding=decimal.ROUND_HALF_UP))
print Amount
except ValueError:
print 'Error'
我遇到的错误是:
File "C:\Python27\lib\decimal.py", line 548, in __new__
"Invalid literal for Decimal: %r" % value)
File "C:\Python27\lib\decimal.py", line 3866, in _raise_error
raise error(explanation)
InvalidOperation: Invalid literal for Decimal: '2.675a'
最佳答案
您的代码片段引发的错误是一个 decimal.InvalidOperation
异常。此异常不是 ValueError
的子类,因此与您的 except
子句不匹配。
我建议阅读 errors and exception handling 上的教程部分了解有关如何处理 Python 代码中的错误的更多概述。
关于Python 不捕获 try/except 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13284333/