python中oserror 不能捕获_python 捕获异常操作

一.常见异常

1.语法错误:SyntaxError:invalid syntax

(1)案例:

4704f36a1b9aa7c5748cec95edc6c047.png

(1)解决方法:

①查看代码有没有红色波浪线

②熟悉python基本语法

2.变量名不存在:NameError:name 'b' is not defined

(1)案例:

8d9608a8b4d0fc746fe0363befa02042.png

(2)解决方法:

①检查对应的变量名是否有定义并赋值,是否写错了变量名称

3.索引错误:IndexError: list index out of range

(1)案例:

11c7db7f065a0cde260e1be7a3861777.png

(2)解决方法:

①检查lis对象索引选择是否超出了本来的长度

4.关键字错误:KeyError: 'c'

(1)案例:

72f7e292e6b8399262ecb201d0ed8ee2.png

(2)解决方法:

①检查字典里是否存在这个key值

5.类型错误:TypeError: list indices must be integers, not str

(1)案例:

38deebadc200a6af2395882c1a165380.png

(2)解决方法:

①检查清楚数据类型是否有误

6.参数传值错误:ValueError: invalid literal for int() with base 10: 'ab'(主要发生在函数里面)

(1)案例:

d924cff1f8cef4912f50b25b7d99795a.png

(2)解决方法:

①弄清楚形参的数据类型

②再传对应形参的数据类型

7.属性错误:AttributeError: A instance has no attribute 'acc'

(1)案例:

ba30228fc3815d37793f24a700df841b.png

(2)解决方法:

①检查类里是否存在这个被调用的方法

②一般不能自动匹配出方法的多半有问题

8.输入输出错误:IOError

(1)案例:

eead136b2f1a1491f2162457235c4f16.png

(2)解决方法:

①找到代码中关于输入输出的相关操作

②检查文件路径和名称对不对

二.常见异常总结

1.SynataxError:语法错误

2.NameError:试图访问的变量名不存在

3.IndexError:索引错误,使用的所以你不存在,常为索引超出序列范围

4.KeyError:使用了映射中不存在的关键字(键)时引发的关键字错误

5.TypeError:类型错误,内建操作或是函数应于在错误类型的对象时会引发类型错误

6.ValueError:值错误,传给对象的参数类型不正确,例如给int()函数传入了字符串数据类型

7.AttributeError:属性错误,特性引用和赋值失败时会引发属性错误

8.IOError:输入输出错误

异常不局限于以上八中,这只是很常见的八种异常

三.捕获异常

1.try...except组合语法

(1)代码:

try:

正常的操作

except:

发生异常,执行这块代码

(2)案例:

963953448f9955aec82fbb98f85f562c.png

2.try...except...else组合语法

(1)代码:

try:

正常的操作

except:

发生异常,执行这块代码

else:

如果没有异常,执行这块代码

(2)案例:

1b0aa2908e08b9a143306745742e4cd2.png

3.try...except...except(多个异常处理)

(1)代码:

try:

正常的操作

except A:

发生异常A,执行这块代码

except B:

发生异常B,执行这块代码

except:

发生其它异常,执行这块代码

else:

如果没有异常,执行这块代码

(2)案例:

f31833d4f725f670a065ff8a7f05fb5f.png

4.try...except(A,B)(一次捕获多个异常)

(1)代码:

try:

正常的操作

except(A,B):

发生异常A和B,执行这块代码

(2)案例:

72ce9bf8ccca7ef1bdd75342a9310799.png

5.try...except...finally组合语法:(try...finally也可以)

(1)代码:

try:

正常的操作

except:

发生异常,执行这块代码

else:

如果没有异常,执行这块代码

finally:

不管有没有异常,都执行这块代码

(2)案例:

e9a1b13a8a337b5613ca910cc0690dd8.png

6.try...except(嵌套)

(1)代码:

try:

正常的操作

try:

正常的操作

finally:

不管有没有异常,都执行这块代码

except A:

发生异常,执行这块代码

(2)案例:

be16bdd27ba20c8ac26860d30dc50430.png

四.处理异常(在脚本执行不成功时,我们希望能把信息打印出来)

1.如果已经知道会发生什么异常:

72eecb88fbd9d1a8d52fb17a24fc834d.png

2.不知道会发生什么异常(万能的)---------所有的异常都继承Exception

eaac39f85d36b763c53bbab9d9375a75.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值