小肥羊要进步

python_异常处理

1.除数为0的异常处理

i=input('请输入数字: ')
n=888
try:
result=n/int(i)
print(result)
print('{0}除以{1}等于{2}'.format(n,i,result))
except ZeroDivisionError as e:
print('不能除以0,异常{}'.format(e))
2.多个except代码块
i=input('请输入数字: ')
n=888
try:
result=n/int(i)
print(result)
print('{0}除以{1}等于{2}'.format(n,i,result))
except ZeroDivisionError as e:
print('不能除以0,异常{}'.format(e))
except ValueError as e:
print("输入的是无效数字,异常:{}".format(e))
3.多重异常捕获
i=input('请输入数字: ')
n=888
try:
result=n/int(i)
print(result)
print('{0}除以{1}等于{2}'.format(n,i,result))
except (ZeroDivisionError,ValueError) as e:
print('异常{}'.format(e))
4.try-except语句嵌套

#coding=utf-8
i=input("请输入数字: ")
n=8888
try:
i2=int(i)
try:
result=n/i2
print("{0}除以{1}等于{2}".format(n,i2,result))
except ZeroDivisionError as e1:
print("不能除以0,异常:{}".format(e1))
except ValueError as e2:
print("输入的是无效数字,异常:{}".format(e2))

5.使用finally代码块释放资源

i=input('请输入数字: ')
n=888
try:
result=n/int(i)
print(result)
print('{0}除以{1}等于{2}'.format(n,i,result))
except ZeroDivisionError as e:
print('不能除以0,异常{}'.format(e))
except ValueError as e:
print("输入的是无效数字,异常:{}".format(e))
finally:
print('资源释放')
6.自定义异常类
class TestException(Exception):
def __init__(self,message):
super().__init__(message)

i=input('请输入数字: ')
n=888
try:
result=n/int(i)
print(result)
print('{0}除以{1}等于{2}'.format(n,i,result))
except ZeroDivisionError as e:
#print('不能除以0,异常{}'.format(e))
raise TestException('不能除以0')
except ValueError as e:
#print("输入的是无效数字,异常:{}".format(e))
raise TestException('输入的是无效数字')



 

posted on 2020-06-27 17:42  小肥羊要进步  阅读(230)  评论(0编辑  收藏  举报

导航