Python--枚举类型和异常处理

枚举类型

使用枚举类型可以更加直观的表示数值代表的意义

>>> from enum import Enum, unique

>>> @unique     # 检测重复
... class color(Enum):
...     RED = 1
...     GREEN = 2
...     BLUE = 3
... 
>>> c = color.RED
>>> print(c)
color.RED
>>> print(c.RED)
color.RED
>>>

异常处理

>>> age = -1
>>> while age == -1:
    tmp = input('your age:')
    try:
        age = int(tmp)
    except:
        print('Value Error')
        age = -1


your age:a
Value Error
your age:b
Value Error
your age:c
Value Error
your age:1

按异常类型捕获

>>> try:
...     f = open(input('filename:'))
...     age = int(input("int:"))
...     f.close()
... except ValueError:
...     print('int Error')
... except IOError:
...     print('open Error')
... 
filename:
xx

open Error
>>> 

finally处理必须执行的代码

>>> f = None
>>> try:
...     f = open(input('filename:'), 'w')
...     age = int(input("int:"))
... except ValueError as e:
...     print('int Error', e)
... except IOError as e:
...     print('open Error', e)
... finally:
...     if f:
...         f.close()
... 
filename:
xxx.xxx

int:
asdf

int Error invalid literal for int() with base 10: 'asdf'
>>> 

抛出异常

>>> def div(x, y):
...     if y == 0:
...         raise ValueError('除数为0')
...     else:
...         return x / y
... 
>>> div(1, 2)
0.5
>>> div(1, 0)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 3, in div
ValueError: 除数为0

抛出的异常可以统一在一个地方进行捕获

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值