python异常处理与程序调试

本文介绍了Python中如何使用try语句进行异常处理,并通过示例展示了如何捕获和处理不同类型的异常。此外,还提供了使用pdb进行调试的方法,帮助开发者更有效地定位和解决问题。

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

1 异常处理

使用try语句进行处理异常。一般形式如下:

try:
    <要进行捕捉异常的语句>
except <异常语句>:
    <对异常进行处理的语句>
except <异常语句>:
    <对异常进行处理的语句>
else:
    <未发生异常执行的语句>

例1

l=[1,2,3,4]
try:
    l[7]
except:#未填写异常名则表示捕获所有异常
    print('error')
else:
    print('no error')
error
'''#不进行异常处理则是:
l[7]
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/IPython/core/interactiveshell.py", line 2910, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-4-dc61b3a869da>", line 1, in <module>
    l[7]
IndexError: list index out of range
'''

多重捕获异常:在python中可以使用try语句嵌套另一个try语句,由于python将try语句放在堆栈中,因此一旦发生异常,python将匹配最近的except语句,如果except能处理次异常,则外围的except语句将不会捕获异常,如果忽略此异常,则该异常将被外围try捕获。

try:
    try:
        l[8]
    except:
        print('error1')
except:
    print('error2')

else:
    print('ok')

error1
ok
'''
使用except捕获零除异常,实际非零除异常
try:
    try:
        l[8]
    except ZeroDivisionError:
        print('error1')
except:
    print('error2')
else:
    print('ok')

error2
'''

2 调试

使用runeval调试,使用n命令单步执行

import pdb
pdb.runeval('l[1]')
> <string>(1)<module>()
(Pdb) >? n
--Return--
> <string>(1)<module>()->2
(Pdb) >? n
Out[8]: 2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值