2

私は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'
4

1 に答える 1

5

コード フラグメントによって発生するエラーはdecimal.InvalidOperation例外です。この例外は のサブクラスではないため、句ValueErrorと一致しません。except

Python コードでエラーを処理する方法の概要については、エラーと例外処理に関するチュートリアルのセクションを読むことをお勧めします。

于 2012-11-08T07:26:27.443 に答える