Python学习笔记——9(异常处理+总结)

异常定义:

     -如果代码没有语法问题,可以运行,但会出运行时的错误,例如除零错误,下标越界等问题,这种在运行期间检测到的错误被称为异常。

     -出现了异常必须处理否则程序会终止运行,用户体验会很差。

     -Python支持程序员自己处理检测到的异常。

     -可以使用try-except语句进行异常的检测和处理。

常见的异常类型:

报错类型描述
AssertionError当assert断言条件为假的时候抛出异常
AttributeError当访问的对象属性不存在的时候抛出的异常
IndexError超出对象索引的范围时抛出的异常
KeyError在字典中查找一个不存在的key抛出的异常
NameError访问一个不存在的变量时抛出的异常
OSError操作系统产生的异常
SyntaxError语法错误时会抛出此异常
TypeError类型错误,通常是不同类型之间的操作会出现此异常
ZeroDivisionError进行数学运算时除数为0时会出现此异常

代码演示:

# NameError
prlnt()  # 函数名拼写错误
a = 'zhang'
print(aa)  # 变量名拼写错误
print(b)  # 使用不存在的变量

#SyntaxError   IndentationError
if 'he' == 'hi'
print(' ')

# TypeError
print(3 + '2')

tp = (1, 3, 5)
tp[2] = 4
print(tp)

# AttributeError
tp = (1, 3, 5)
tp.append(2)
print(tp)

# KeyError
d = {1: 2, 3: 4}
print(d[2])

# IndexError
tp = (1, 3, 5)
print(tp[4])

try-except语句:

   -首先执行try中代码块,如果出现异常,立即终止代码执行,转而到except块中进行异常处理。

   -异常处理except模块可以多个,从上往下匹配,如果能够匹配成功,立即执行相应的异常处理代码块,执行完毕后,不在往下匹配,转到3执行

   -执行异常处理完毕后,如果有finally字句则执行finally字句,如果没有则执行后续语句。

   -如果匹配不到异常,有finally则执行finally,然后则抛出错误,终止程序执行。

   -如果没有异常,如果有else字句则执行else字句,执行完else后,有finally字句则执行,没有则执行后续语句。 

代码演示:

try:
    n = int(input('请输入一个数字:'))
    n = 5 / n
    print(n)
except ZeroDivisionError as e:
    print('请重新输入一个不为0的数字')
    print('原始数据:',e)
except:
    print('请输入一个数字')
else:
    print('运行没有被except语句捕获,执行else模块')
finally:
    print('无论如何,都要执行finally模块')

raise关键字:

代码演示:

try:
    password = input('请输入您的密码:')
    if len(password)<8:
        raise Exception('密码长度不够,请重新输入一个8位以上的密码')
except Exception as e:
    print(e)

错误处理方式:

    - 运行,从错误信息中找到问题

    - 打印相关信息

    - 注释一点点排查

    - 代码调试

总结:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值