异常处理涉及的关键字:

try:

理解它是扫描器,将可能出现异常的代码放入其中;

如果在执行的过程中出现异常对象了,扫描器会立即察觉到此异常对象,

但是它没有处理它的能力,所以会将异常对象给到except(捕获器)进行处理

except:

理解它是捕获器,后面可以定义异常类型,并且和as关键字配合使用;

定义多个except是合法的,但是它的执行顺序是有由上往下,一旦匹配上某个except,之后的就不执行了;

匹配成功就理解将异常对象捕获住并且kill,顺便会执行except内部的代码

finally:

将一定需要被执行的代码定义其中,【记住】:finally一定会被执行(核心)

使用场景:像关闭文件、断开数据库连接等行为都可以放入到finally中

else:

位置在finally前,except后;效果/作用类似于循环

没有异常对象出现,else就会被执行,反之不会被执行

raise:

手动抛出一个异常类型的对象,定义:raise 异常类型(msg)

定义格式:

格式一:

try:

语句块1

except 异常类型1 as e:

语句块2

except 异常类型2 as e:

语句块3

except 异常类型3 as e:

语句块4

finally:

语句块5

【注意事项】:

以上的格式由多个except语句并列存在,每个except包含一种类型

如果它们之间没有子父类的关系(互斥),那么谁上谁下无所谓

如果它们之间存在子父类的关系(包含),那么小的在上,大的在下

格式二:

try:

语句块1

except 异常类型1 as e:

语句块2

except 异常类型2 as e:

语句块3

except 异常类型3 as e:

语句块4

except (异常类型4,异常类型5,...,异常类型m) as e:

finally:

语句块5

【格式说明】:

一个except具备多个捕获能力(捕获多种不同类型异常对象)

格式三:

try:

语句块1

except 异常类型1 as e:

语句块2

except 异常类型2 as e:

语句块3

except 异常类型3 as e:

语句块4

except (异常类型4,异常类型5,...,异常类型m) as e:

语句块5

except Exception as e:

语句块6

finally:

语句块7

【类型说明】:

Exception是所有异常类型的父类型,它都是定义在最后一个except的位置

格式三:

try:

语句块1

except 异常类型1 as e:

语句块2

except 异常类型2 as e:

语句块3

except 异常类型3 as e:

语句块4

except (异常类型4,异常类型5,...,异常类型m) as e:

语句块5

except:

语句块6

finally:

语句块7

【Exception的简化版使用】:

如果定义了except,那么它必须是最后一个except,它可以理解为是Exception的简化形式

注意事项:

1).try...finally这种格式是合法的,但是它丧失了解决异常对象的能力 --> 开发不会出现

2).else语句必须配合except使用,出现位置一定是在最后一个except的后面

3).常见的运行时异常类型:

ZeroDivisionError:分母为0的异常

TypeError:类型有误的异常

NameError:没有定义就使用的异常

IndexError:下标越界的异常

FileNotFoundError:文件找不到的异常

4).with open ... as ...语句可以优化原始的open操作!体现:它不需要手动close()文件对象

总结:学习异常对象简单归纳为5个关键字:try except finally else raise

1.异常体系:div(a,b):

print(a / b)

div(10,0)演示异常处理的方式一:try ... except ...:

print(10/0)

ZeroDivisionError e:

print(e)

:

print(+123)

TypeError e:

print(e)

:

print(a)

NameError e:

print(e)

:

lt = [1,2,3,4,5]

print(lt[5])

IndexError e:

print(e)

:

fr = open(,,encoding=)

print(fr.read())

fr.close()

FileNotFoundErroreprint(e)

(ZeroDivisionError,TypeError,NameError,IndexError,FileNotFoundError) e:

print()

Exception e:

print()

:

print()补充:except不能捕获处理类似于语法错误这种情况演示finally语句的使用:

将一定要被执行的代码定义在finally中,不管之前的代码怎么样(异常是否被解决),finally一定会被执行,在后期的学习和开发中,我们将关闭文件、关闭数据库连接等操作都定finally中:

fr = open(,) print(fr.read())

print(10 / 0)

print(10 / 0):

print()

:

print()

fr.close()

但是如果一开始就是一个打不开的文件,则也没有办法关闭文件啦fr = 0

:

fr = open(,) print(fr.read())

:

print()

:

print()

fr:

fr.close()

引入新的语法糖:with open...操作:不需要程序员认为的去书写close()函数open(,)fr:

print(fr.read())

解决异常也是一样

try:

withopen(r'C:\Users\Administrator\Desktop\a.txt','r') asfr:

print(fr.read())

except:

print('干掉啦,干掉啦...')

面试题:Finally案例:分别输出了哪些内容,返回值是多少func():

:

print()

print(10 / 2)

1 :

print()

2

:

print()

3

num = func()

print(num)

#结果得到是 我是try...

5.0

我是finally...

3如果题目改为如下,则func():

:

print()

print(10 / 0)

1

:

print()

2

:

print()

3

num = func()

print(num)

#结果得到是 我是try...

我是except...

我是finally...

3:

print()

print(10 / 0)Exception e:

print()

:

print()

:

print()

#得到 我是try...

我是except...

我是finally...

#如果吧print(10 / 0) 改为print(10 / 2)

#得到 我是try...

5.0

我是else...

我是finally...age = 18

age < 0 age > 130:

:

Exception()

:

print()

:

print(%age)print('能走吗?')

#得到结果为 年龄为:18

能走吗?

#如果第一行是age=-18,则

#得到结果为 年龄不合法...正在处理

能走吗?

m1():

print()

print(10 / 0)

m2():

print()

m1()

m3():

print()

:

m2()

:

m3()

#得到结果 我是m3...

我是m2...

我是m1...

可以结束一个循环的关键字是python_python异常处理会使用到哪些关键字?相关推荐

  1. 可以结束一个循环的关键字是python_Python中的循环关键字

    循环关键字 1. continue continue是循环体中的关键字,只能出现在循环中. 如果在执行循环的过程中遇到了continue,当次循环结束,直接进入下次循环的判断 for x in ran ...

  2. 可以结束一个循环的关键字是python_第33 p,for遍历,循环取值最方便

    大家好,我是杨数Tos,这是<从零基础到大神>系列课程的第33篇文章,第二阶段的课程:Python基础知识:Python中的控制语句之for遍历. 学习本课程,建议先看一遍:[计算机基础知 ...

  3. 哪个选项不是python异常处理可能用到的关键字_2020年超星尔雅《春秋》导读试题及答案...

    [判断题]头脑风暴需要一个轻松愉快的思考环境. [简答题]comet to terms [简答题]import and export [判断题]4.销售折扣在购货方实际付现时才能确认,现金折扣不能冲减 ...

  4. Java技巧:用一个循环语句输出九九乘法表!

    同学们在进行编程学习的时候,输出九九乘法表应该是基础中的基础了,只要我们使用几个循环语句即可轻松实现,那么你有没有想过如果只用一个循环语句应该怎么实现呢? 分析:注意是使用一个循环语句来写,增加了逻辑 ...

  5. 一个循环、一个变量打印乘法口诀

    前几天面试的时候遇到了一个问题,当时也没啥思路,而且时间比较紧,所以就空下了.回来后一直耿耿于怀,于是研究了一下. 问题是这样的:只用一个循环和一个变量打印出乘法口诀. 想了一段时间感觉还是没啥思路, ...

  6. [js] 使用js实现一个循环队列

    [js] 使用js实现一个循环队列 const queue = [] let queueRunning = false let loopTimer = null const loop = task = ...

  7. python循环10次_开发一个循环 5 次计算的小游戏, 设置随机种子为10,每次随机产生两个 1~10的数字以及随机选择...

    开发一个循环 5 次计算的小游戏, 设置随机种子为10,每次随机产生两个 1~10的数字以及随机选择 "+.-.*"运算符,构成一个表达式, 让用户计算式子结果并输入结果,如果计算 ...

  8. python1乘到10_python写一个循环1+到10打印计算步骤的脚本——纯粹无聊玩的

    python写一个循环1+到10打印计算步骤的脚本--纯粹无聊玩的 python写一个循环1+到10打印计算 [root@13cml10 ~]# cat a.py #_*_coding:utf-8_* ...

  9. 返回一个循环数组中最大子数组的和

    设计思路 首先利用rand()函数随机产生一个一维数组,数组长度通过宏定义来控制.求首尾连接的一维数组的最大子数组的和我的思路是:循环N次(N是数组的长度)依次检测数组的最大子数组的和再比较大小,保留 ...

最新文章

  1. java constant 类_如何从Constant java为注释提供值
  2. contenteditable元素的placeholder输入提示语设置
  3. python 廖雪峰数据分析统计服_廖雪峰Python总结1
  4. java换行符分隔字符串_Java 实例 – 字符串分隔(StringTokenizer) | 菜鸟教程
  5. 浅谈android4.0开发之GridLayout布局
  6. jQuery左右循环滚动图片特效
  7. 内联函数的常识性问题
  8. hping3安装及使用
  9. 一个简单的makefile编写(gcc)
  10. Centos7下WebLogic安装部署
  11. ANSYS 有限元分析 几何建模
  12. pptx文件怎么打开(ppt兼容包下载)
  13. 微软苏州招 Android/iOS 开发!
  14. MongoDB修改器使用
  15. 时寒冰 --- 一如即往的支持你
  16. android 11鼠标右键返回功能(已验证)
  17. ubuntu 18.04 安装 搜狗拼音输入法只有中文标点,没有文字
  18. 大学英语四级考试必读必备
  19. 【Blender小技巧】点对齐
  20. Linux搭建MQTT服务器(Mosquitto)

热门文章

  1. ubuntu使用问题
  2. Linux系列学习(二) - Vim编辑器的介绍及使用、文件编译的过程、Makefile工具、Gdb调试器
  3. mac——清理磁盘空间
  4. win7连接sftp_WinSCP(SFTP客户端)官方版下载_WinSCP(SFTP客户端) v5.17.7.10640中文版 - Win7旗舰版...
  5. 基于matlab的运动目标检测,基于matlab的运动目标检测.doc
  6. linux 使用 repotrack 下载 rpm 程序包及其所需依赖
  7. 抖音巨量千川投放受到口碑分影响?该怎么提高口碑分?
  8. Linux: 关于 SIGCHLD 的更多细节
  9. 古风尚婚纱摄影--决定
  10. dp主机_怎样设置显示器DP接口信号优先?