python笔记-0510

第十四讲 异常和设计模式

一、异常

异常:是指在语法正确的前提下,程序运行时报错。
当python脚本发生错误的时候,我们需要捕获处理它,否则程序就会终止运行。

print("开始")  #开始
print(1/0)     #ZeroDivisionError: division by zero,程序报错,然后停止运行。
print("结束")  #没有运行

ValueError数值异常

try:
    a = int(input("请输入a:"))
    b = int(input("请输入b:"))
    c = a + b
    print(c)
except ValueError as f:
    print("ValueError数值异常")
    print(f)
print("结束")

TypeError类型异常

try:
    a = input("请输入a:")
    b = int(input("请输入b:"))
    c = a > b
    print(c)
except TypeError as f:
    print("TypeError类型异常")
    print(f)

ZeroDivisionError除零异常

try:
    a = eval(input("请输入表达式:")) #输入1/0
    print(a)
except ZeroDivisionError as e:
    print("ZeroDivisionError异常")
    print(e)

二、异常捕获

捕获异常:想让程序发生异常时,不停止程序,就需要捕获异常。

1、基本语法

"""
try:                            程序从上往下运行,先执行try中的代码,
    ...代码1...                 如果代码1报错,则不会执行代码2和3,
    ...代码2...                 直接执行except中的异常代码.
    ...代码3...
except 异常类型 as e:           如果try中没有报错,则不执行except中的代码
    代码
"""
try:
    print("开始")                #开始
    print(1/0)                  #程序发生异常
    print("结束")                #没有运行
except ZeroDivisionError as e:  #捕获异常
    print(e)                    #输出异常信息
print("结束")

注意:如果发生的异常类型与捕获的异常类型不同,是不能捕捉到异常的,程序会报错停止。

try:
    a = eval(input("请输入表达式:"))
    print(a)
    b = [2,3]
    print(b[2])
except ZeroDivisionError as e:
    print("ZeroDivisionError异常")
    print(e)
print("结束")

2、捕获多个异常

如果一段代码中可能会触发多个异常,我们可以写一个try多个except来捕获多个异常。

①、多分支结构

"""
try:                       程序从上往下运行,先执行try中的代码,
    执行代码1              如果try代码没有出错,则不会执行except中的异常代码。
    执行代码2              如果try中代码出错了,程序会依次和excep中的异常类型比较,
    执行代码3              如果try中的异常类型和excep的异常类型匹配,
    ......                 则执行捕获异常代码,其他代码则不再执行。
except 异常类型1:
    代码
except 异常类型2:
    代码
except 异常类型3:
    代码
    ......
"""
try:
    a = eval(input("请输入表达式:"))
    print(a)
    b = [2,3]
    print(b[2])
except ZeroDivisionError as e:
    print("ZeroDivisionError除零异常",e)
except IndexError as f:
    print("IndexError索引异常",f)
except NameError as g:
    print("NameError标识符异常",g)
print("结束")

②、元组结构


                
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值