【python】程序常见异常&异常处理方法

常见的异常

  1. 除0运算 - ZeroDivisionError
    1/0
    division by zero

  2. 找不到文件 - FileNotFoundError
    with open(“tmp.txt”) as f:
    pass
    No such file or directory: ‘tmp.txt’

  3. 值错误 - ValueError
    传入一个调用者不期望的值,即使这个值的类型是正确的
    s = “1.6”
    n = int(s)
    invalid literal for int() with base 10: ‘1.6’

  4. 索引错误 - IndexError
    ls = [0,1,2,3]
    ls[5]
    list index out of range

  5. 类型错误 - TypeError
    传入对象类型与要求不符
    2 + “3”
    unsupported operand type(s) for +: ‘int’ and ‘str’

  6. 名称错误 - NameError
    使用一个未被定义的变量
    print(a)
    NameError : name ‘a’ is not defined

  7. 键错误 - KeyError
    试图访问字典里不存在的键
    d = {}
    d[“m”]
    KeyError: ‘m’

当异常发生的时候,如果不预先设定处理方法,程序就会中断

异常的处理

目的:提高程序的稳定性和可靠性

try_except

  1. 单分支

    x, y = 5, 0
    try:
    	z = x / y
    except ZeroDivisionError:
    	print('0不可以被除')
    
  2. 多分支

    d = {'name': 'Tom'}
    try:
    	d['height']
    except NameError:
    	print('变量名不存在')
    except KeyError:
    	print('键不存在')
    
  3. 万能异常Exception

    d = {'name': 'Tom'}
    try:
    	d['height']
    except Exception:
    	print('出错了')
    
  4. 捕获异常的值as

    d = {'name': 'Tom'}
    try:
    	d['height']
    except Exception as e:
    	print(e)
    

try_except_else

try顺利执行,则else也执行

try:
	with open('tmp.csv') as f:
		text = f.read()
except FileNotFoundError:
	print('找不到该文件')
else:
	print('找到了该文件')

try_except_finally

无论try执行与否,finally都执行

d = {'name': 'Tom'}
try:
	d['height']
except Exception as e:
	print(e)
finally:
	print('无论是否出发异常,都将执行')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值