Python异常处理

一、错误与异常

1、错误:语法错误、逻辑错误
2、异常:程序运行时发生错误的信号

二、异常处理

1、什么是异常处理:
程序运行时,如有可预知的错误,用if判断,如果错误不可预知,就会崩溃,此时将不可预知可能发生错误的代码块进行异常处理。
程序员编写特定的代码,去捕捉异常,如捕捉成功进入到另外一个处理分支,使程序不崩溃。

2、为何要进行异常处理:
防止程序异常崩溃,必须提供一种异常处理机制来增强程序的健壮性和容错性。

3、如何处理异常:
try except :
1、python为每一种异常定制了一种类型;
2、异常类只能用来处理指定异常,如非指定异常则无法处理;
3、如可能出现多个异常,就用多分枝处理,多个except捕捉异常;
4、捕捉到异常后,执行分支代码,发生异常代码后面的代码不再执行;
5、Exception 万能异常,捕捉任何异常;
(3)else 如果没哟异常,执行else后面的代码块
(4)finally 无论是否有异常,都执行finally后面的代码块,通常是执行清理工作

4、主动触发异常:
raise typeError(‘类型错误’)

5、自定义异常:
异常本质就是一个类,继承BaseException 或继承Except

6、断言
assert 1==2

7、是么时候用异常处理

尽量少用,只有在有些异常无法预知的情况下才用。

自定义异常
1、如何自定义异常类?
2、如何主动抛出异常?
3、如何捕获异常?

class MyException(Exception):
    def __init__(self, code, msg):
        self.code = code
        self.msg = msg

try:
    raise MyException(1000,'操作异常')
except KeyError as obj:
    print(obj)
except MyException as obj:
    print(obj)
except Exception as obj:
    print(obj)

常见的异常类型

# ValueError
# int('aaa')

# NameError
# name

# IndexError
# l = [1,2,3]
# l[100]

# KeyError
# d = {}
# d['key']

#
# AttributeError
# class Foo:
#     pass
#
# Foo.xx


# ZeroDivisionError
# 1/0


# TypeError
# for i in 3:
#     pass

# KeyboardInterrupt
# import time
# time.sleep(100)入代码片
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值