中的信号异常
decimal
模块都是
decimal.DecimalException
exception class
。您可以捕获以下任何异常来处理
InvalidOperation
例外,从特定到(非常)一般:
decimal.InvalidOperation
decimal.DecimalException
ArithmeticError
Exception
BaseException
ValueError
不在该层次结构中,但
Exception
也会抓住
值错误
因为它是一个子类。一般来说,你很少想抓住
BaseException
因为它抓住了
全部的
可能的例外情况,包括
SystemExit
和
MemoryError
.
您可以在同一处理程序中捕获多个异常:
from decimal import Decimal, DecimalException
while True:
try:
p = Decimal(raw_input(...))
if ...condition... : break
else: raise ValueError
except (ValueError, DecimalException):
print "Error! ..."
会抓住你的原版
值错误
异常,以及由
十进制的
单元