python获取异常信息(try...)、raise抛出异常

本文详细介绍了Python中异常处理的几种方式,包括如何获取异常信息描述,捕获所有异常的两种格式,try...else...的用法,确保执行finally块中的代码,以及使用raise主动抛出系统异常。对于理解和使用Python异常处理机制非常有帮助。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

 

1.获取异常的信息描述

2.捕获所有异常

3.try...else...

4.try...finally...

5.raise抛出系统异常


1.获取异常的信息描述

格式:

try :

     ...执行代码...

     ...执行代码...

except  异常类型  as  变量名:

     ...执行异常...

     ...执行异常...

应运: 

try:
    print(1 / 0)
except ZeroDivisionError as e:
    print('异常信息为:', e) # 异常信息为: division by zero

2.捕获所有异常

格式: 

捕获所有异常
try:
    ...代码...
    ...代码...
except:
    ...代码...
    ...代码...
或
try:
    ...代码...
    ...代码...
except Exception:
    ...代码...
    ...代码...

第一种格式:

try:
    s = [1]
    print(s[3])
except:
    print('程序出错') # 程序出错

第二种格式:

try:
    s = [1]
    print(s[3])
except Exception as e:
    print('程序出错',e) # 程序出错 list index out of range

3.try...else...

if...else...,在if中,它的作用是当条件不满足时执行的实行,在try...except...中也是如此,即如果没有捕获到异常,那么就执行else中的事情

try:
    print('开始了')
    s = [1]
    print(s[3])
except Exception as e:
    print('程序出错',e)
else:
    print('o(* ̄︶ ̄*)o')
print('结束了')
'''
输出以下内容:
开始了
程序出错 list index out of range
结束了
'''

注意:else一定要有except否则包语法错误

4.try...finally...

try...finally...语句用来表达这样的情况:

在程序中,如果一个段代码必须要执行,即无论异常是否产生都要执行,那么此时就需要使用finally。 比如文件关闭,释放锁,把数据库连接返还给连接池等。

说明:不管try语句有没有执行成功,都会执行finally当中的代码段

try:
    print('开始了')
    s = [1]
    print(s[3])
except Exception as e:
    print('程序出错',e)
finally:
    print('无论有没有异常都要执行')
print('程序结束...')
'''
输出以下内容:
开始了
程序出错 list index out of range
无论有没有异常都要执行
程序结束...

'''

5.raise抛出系统异常

你可以用raise语句来引发一个异常,异常/错误对象必须有一个名字,且它们应是Error或Exception类的子类

raise 手动捕获异常
while True:
    try:
        name = input('请输出姓名:(不能小于三位)')
        if len(name) < 3:
            raise Exception('短了!')  # 手动抛出异常
        else:
            pwd = input('请输入密码:')
        print(name, pwd)
    except Exception as e:
        print(e)
'''
请输出姓名:(不能小于三位)zx
短了!
请输出姓名:(不能小于三位)z
短了!
请输出姓名:(不能小于三位)zxc
请输入密码:123
zxc 123
请输出姓名:(不能小于三位)

'''

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一二三四!

来来来!交个朋友,一起学习

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值