Python没有捕获try / except错误

时间:2012-11-08 07:21:10

标签: python error-handling

我是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'

1 个答案:

答案 0 :(得分:5)

您的代码片段引发的错误是decimal.InvalidOperation异常。此异常不是ValueError的子类,因此与您的except子句不匹配。

我建议阅读errors and exception handling上的教程部分,了解如何处理Python代码中的错误。