python基础:异常

异常

python遇到错误后,会引发异常。如果异常对象并未被处理或捕捉,则程序就会用所谓的晦朔(Traceback,一种错误信息)来终止执行。

处理异常
1.异常是指在程序执行过程中发生的一个时间,会影响程序的正常运行,所以一般需要进行捕获异常处理。
2.异常的捕获使用try/except/finally语句进行捕获操作,并告诉python发生异常时怎么。
语法:
try:
    <语句>
except <异常类型1>[, 异常参数名1]:
    <异常处理代码1>
except <异常类型2>[, 异常参数名2]:
    <异常处理代码2>
else:
    <没有异常时候的处理代码>
finally:
    <不管是否有异常,最终执行的代码块>
例如:

try:
    print(aaa)      #如果这句话有错,就会捕获到异常
except NameError:   #NameError异常
    print('变量未定义')  #对NameError异常的处理

结果为:
变量为定义

捕获异常的具体信息

例如:

try:
    print(aaa)      #如果这句话有错,就会捕获到异常
except NameError as e:
    print(e)    #打印具体的异常信息
    print('变量未定义')

结果为:
name 'aaa' is not defined
变量未定义

包含多个异常

例如:

try:
    # print(aaa)
    files = open('aaa.txt','r',encoding='utf-8')      #如果这句话有错,就会捕获到异常
except (NameError,FileNotFoundError) as e:
    print(e)     #打印具体的异常信息

万能方法Exception

例如:

try:
    files = open('aaa.txt','r',encoding='utf-8')      #如果这句话有错,就会捕获到异常
except Exception as e:
    print(e)

else:没有异常时要执行的语句

例如:

try:
    files = open('aaa.txt','r',encoding='utf-8')      #如果这句话有错,就会捕获到异常
except Exception as e:  #有异常时执行
    print(e)
else:   #没有异常时执行
    print('没什么问题')

结果为:
没什么问题

finally:不管有没有异常都会执行的代码块

例如:

try:
    print("打开文件!")
    files = open('aaa.txt','w',encoding='utf-8')
    try:
        files.write('测试下行不行')
    except:
        print('写入失败!')
    else:
        print('写入成功!')
    finally:
        print('关闭文件!')
        files.close()
except Exception as e:
    print(e)

结果为:
打开文件!
写入成功!
关闭文件!
例如:
加法运算:提示用户提供数值输入时,常出现的一个问题是,用户提供的是文本而不是数字。
在这种情况下,当你尝试将输入转换为整数时,将引发TypeError 异常。编写一个程序,
提示用户输入两个数字,再将它们相加并打印结果。在用户输入的任何一个值不是数字时都捕获TypeError 异常,
并打印一条友好的错误消息。对你编写的程序进行测试:先输入两个数字,再输入一些文本而不是数字。
try:
    num1 = int(input('请输入第一个数字:'))
    num2 = int(input('请输入第二个数字:'))
except ValueError:
    print('请输入一个整数')
else:
    print(num1 + num2)
常出现异常类型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值