我是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'
答案 0 :(得分:5)
您的代码片段引发的错误是decimal.InvalidOperation
异常。此异常不是ValueError
的子类,因此与您的except
子句不匹配。
我建议阅读errors and exception handling上的教程部分,了解如何处理Python代码中的错误。