Python使用decimal.InvalidOperation捕获条目异常

时间:2018-03-29 14:35:56

标签: python exception try-catch decimal

我正在处理从书中复​​制的异常示例。

from decimal import *
entry=input("GRD Conversion")
try:
    grd_usd=Decimal(entry)
except decimal.InvalidOperation:
    print("Invalid: ",entry)

而不是预期的无效错误:3d for 3d作为我的条目我得到了

  

Traceback(最近一次调用最后一次):文件   " /Users/myuser/Library/Preferences/IdeaIC2018.1/scratches/scratch.py​​" ;,   第6行,在       grd_usd =十进制(条目)decimal.InvalidOperation:[]

     

在处理上述异常期间,发生了另一个异常:

     

Traceback(最近一次调用最后一次):文件   " /Users/myuser/Library/Preferences/IdeaIC2018.1/scratches/scratch.py​​" ;,   7号线,在       除了decimal.InvalidOperation:NameError:name' decimal'未定义

我在Mac上使用Python 3.6。

1 个答案:

答案 0 :(得分:1)

如错误所示,您没有任何名为decimal的内容。使用from .. import *时,包本身不会变为变量。然后找不到decimal.InvalidOperation

import decimal

entry = input("GRD Conversion")
try:
    grd_usd = decimal.Decimal(entry)
except decimal.InvalidOperation:
    print("Invalid: ", entry)