异常捕获与调试

异常

程序执行过程中遇到任何错误,带有error字样的 都是异常

异常处理

对代码中的可能会出现的异常,进行处理

1.处理某个错误

2.处理某种类型的错误(补充:错误类型具有分类,如:OSError包含了FileExistsError

3.是错就抓  #常用

python标准异常:百度可得

异常捕获

1.捕获一个异常

表现形式:

try:

  可能出现异常的代码

except 异常的名字:

  遇到异常时的处理方式

例子:

import os
try:    #警察
    os.mkdir('other_file')      #嫌疑人
except FileExistsError:
    print('抓捕归案,等待进一步处理')

 

反例:   ---抓捕错误则不再执行后续

2.捕获多个异常    #逗号隔开异常名字

表现形式:

try:

  可能出现异常的代码块

except (异常的名字1,异常的名字2):

  遇到异常时的处理方式

3.捕获所有异常

表现形式:  # Exception 可以不加

try:

  可能出现异常的代码块

except Exception:        

  遇到异常时的处理方式

import os
try:    #警察
    os.mkdir('other_file')      # FileExistsError 嫌疑人
except Exception:     # Exception 捕获所有异常
    print('抓捕归案,等待进一步处理')

#输出内容:抓捕归案,等待进一步处理

捕获异常时获取异常的描述信息

产生异常时除了需要处理异常之外有时还需知道产生异常的原因

表现形式:

try:

  可能出现异常的代码块

except Exception as 变量名:

  遇到异常时的处理方式

  打印变量

例子:(other_file已存在不可再新建)

import os
try:    #警察
    os.mkdir('other_file')      # FileExistsError 嫌疑人
except Exception as e:          # 把错误抓起来存到变量e里面去
    print('抓捕归案,等待进一步处理')
    print('你犯的错是:{0}'.format(e))

输出:

#输出内容:
/usr/local/bin/python3.7 /Users/tuyoo/Documents/pytext/test02/other_file/aaa.py
抓捕归案,等待进一步处理
你犯的错是:[Errno 17] File exists: 'other_file'

Process finished with exit code 0

异常处理中使用finally

try ... except 异常类型... finally ...

含义:无论是否捕获到异常,最后都需执行finally中的代码块

例子:(other_file已存在不可再新建)

import os
try:                            #警察
    os.mkdir('other_file')      # FileExistsError 嫌疑人
except NameError as e:          # 抓错异常后,理论上不再继续执行
    print('抓捕归案,等待进一步处理')
    print('你犯的错是:{0}'.format(e))
finally:    #无论是否犯错都要执行
    print('天下武功唯快不破')

输出:

#输出内容:
/usr/local/bin/python3.7 /Users/tuyoo/Documents/pytext/test02/other_file/aaa.py
Traceback (most recent call last):
  File "/Users/tuyoo/Documents/pytext/test02/other_file/aaa.py", line 59, in <module>
    os.mkdir('other_file')      
FileExistsError: [Errno 17] File exists: 'other_file'
天下武功唯快不破

异常处理中使用else

try ... except 异常类型 ... else ...

例子:(other_file已存在不可再新建)

import os
try:                            #警察
    os.mkdir('other_file')      # FileExistsError 嫌疑人
except Exception as e:          # 抓错异常后,理论上不再继续执行下去
    print('抓捕归案,等待进一步处理')
    print('你犯的错是:{0}'.format(e))
else:       #跟try下边的代码同体,一旦try遇见异常就也不再执行
    print('天下武功唯快不破')

输出(报错):  #try有错不再执行else下的语句

/usr/local/bin/python3.7 /Users/tuyoo/Documents/pytext/test02/other_file/aaa.py
抓捕归案,等待进一步处理
你犯的错是:[Errno 17] File exists: 'other_file'

 

转载于:https://www.cnblogs.com/nbnuan/articles/9822485.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本套课程为Python基础篇的第3套课程,主要讲解python异常处理的系统知识体系。      首先讲解异常的定义与分类: Exception、ValueError、TypeError、OSError等。其次讲解Python的多层次捕获异常机制 try...except...except .... ,然后对于finally、else 关键字以及异常堆栈跟踪等进行一一介绍。      本课程末尾讲解常用的自定义异常与raise自定义抛异常机制,以及assert断言等。      课程末尾需要重点说明的是,本系列课程均设置课堂练习与课后作业集中讲解(录播形式),让初学者通过大量练习与阶段项目等手段有效强化学习效果,保证学习过程中的技能全面提升!  教学特点:      使用大量(3D/2D)动画与图示方式,由浅入深讲解Python编程。配之海量课堂练习/课后作业的大量讲解,以及刘老师风趣幽默的课堂幽默感染力,让你轻松加愉悦的心情下开启Python系统学习之旅,系统与深入掌握当今最为火热的人工智能御用编程语言!      本Python教程分为入门、基础、中级、进阶篇,共15套教程组成。突出教学特点如下:           1:为弥补线下“互动性”与知识点的高“吸收率”,每套课程均设置“课堂练习”、“课后作业”、“阶段项目实战”、以及每个章节末尾的“课程笔记”整理环节,不断强化学员知识点的不断巩固与知识体系的梳理,不遗漏任何重要知识点。 以上四大自学环节设置,保证自学过程中知识的反复锤炼与全面吸收,最终获得优秀学习效果!      2:本Python系列课程(15套)从入门篇开始,完全从真正零基础开始讲起,特别适合中小学生以及大学非计算机专业的初学者开始入门!      3:大量采用3D/2D图形化示例讲解,对于Python抽象与复杂问题全部采用3D动画演示。      4:每套课程开始均设置“课程概述”: 讲解本套课程的前导课程、后续课程,以及本套课程的知识体系内容,帮助学习者更好的掌握课程的来龙去脉。          更多学习内容以图示方式供广大学员参考如下: 

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值