python的try和except用法_try except(多个except)多异常处理
在python中,try except是基本的捕获并处理异常的语句,try except语句里try代码块写一个即可,except 代码块可以写多个,每个 except 块都可以参与处理1个或者多个异常。
我们先从理论上知道下try except 语句的执行流程:
1、首先执行try子句(在关键字try和关键字except之间的语句),如果执行出错,try语句余下的部分将被忽略,系统会自动生成一个异常交给python解释器,此为捕获异常。
2、python解释器收到异常对象后,会寻找能处理该异常的except块,找到后则把该异常对象交给该except代码块处理,此为处理异常。
3、处理异常后,程序继续执行后续的代码(注意不是try后面的代码)。
PS:如果第2步python解释器找不到能处理该异常的except块,则程序运行终止;如果第1步整个try语句执行过程没有异常发生,那么except语句块会被忽略句。
接下来我们用4个案例展示try和except1个或者多个的具体用法。
1个try1个except处理1个异常
先看一下不加异常的运行情况,再看下加上异常处理后的情况
# -*- coding: utf-8 -*-
print(1)
print(name)
print(2)
print(3)
1
Traceback (most recent call last):
File "D:/pyscript/py3script/python66/python66.py", line 4, in print(name)
NameError: name 'name' is not defined
# -*- coding: utf-8 -*-
# 异常处理
try:
print(1)
print(name)
print(2)
except NameError as e:
print('有异常',e) # 处理异常
print(3)
1
有异常 name 'name' is not defined
3
1个try1个except处理多个异常
# -*- coding: utf-8 -*-
try:
print(1/0)
print(name)
except (NameError,ZeroDivisionError) as e:
print('出错!除以0或者打印未定义变量',e)
print('-----------------------')
try:
print(name)
print(1 / 0)
except (NameError,ZeroDivisionError) as e:
print('出错!除以0或者打印未定义变量',e)
出错!除以0或者打印未定义变量 division by zero
-----------------------
出错!除以0或者打印未定义变量 name 'name' is not defined
1个try多个except处理多个异常
# -*- coding: utf-8 -*-
try:
a = [1,2]
print(a[2])
print(name)
print(1 / 0)
except NameError as e:
print('出错!打印未定义变量',e)
except ZeroDivisionError as e:
print('出错!除以0',e)
except IndexError as e:
print('出错!列表索引异常',e)
出错!列表索引异常 list index out of range
从上面的案例可以看出try except语法很灵活,但是你可能有疑问,在编程中并不知道可能会出现哪一类的Error,那怎么实现捕获并处理异常呢?请继续看下节课的Exception关键字的用法。
python的try和except用法_try except(多个except)多异常处理相关推荐
- Python进阶之递归函数的用法及其示例
作者 | 程序员adny 责编 | 徐威龙 封图| CSDN│下载于视觉中国 出品 | AI科技大本营(ID:rgznai100) 本篇文章主要介绍了Python进阶之递归函数的用法及其示例,现在分 ...
- Python assert断言函数及用法
Python assert断言函数及用法 Python assert 语句,又称断言语句,可以看做是功能缩小版的 if 语句,它用于判断某个表达式的值,如果值为真,则程序可以继续往下执行:反之,Pyt ...
- python的继承用法_【后端开发】python中继承有什么用法?python继承的用法详解
本篇文章给大家带来的内容是关于python中继承有什么用法?python继承的用法详解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 面向对象三大特征 1.封装:根据职责将属性和方法 ...
- (Python)numpy的argmax用法
(Python)numpy的argmax用法 解释 还是从一维数组出发.看下面的例子. import numpy as np a = np.array([3, 1, 2, 4, 6, 1]) prin ...
- python字符串find函数-python字符串查找函数的用法详解
python字符串查找函数的使用 打开Python开发工具IDLE,新建"findstr.py'文件,并写代码如下: s ='/ab/bx,.s' print (s.find('/x')) ...
- python装饰器原理-Python装饰器原理与用法分析
这篇文章主要介绍了Python装饰器原理与用法,结合实例形式分析了Python装饰器的概念.原理.使用方法及相关操作注意事项,需要的朋友可以参考下 本文实例讲述了Python装饰器原理与用法.分享给大 ...
- python装饰器原理-python装饰器原理与用法深入详解
本文实例讲述了python装饰器原理与用法.分享给大家供大家参考,具体如下: 你会Python嘛? 我会! 那你给我讲下Python装饰器吧! Python装饰器啊?我没用过哎 以上是我一个哥们面试时 ...
- python中index函数_详解python中的index函数用法
1.函数的创建 def fun(): #定义 print('hellow') #函数的执行代码 retrun 1 #返回值 fun() #执行函数 2.函数的参数 普通参数 :要按照顺序输入参数 de ...
- python控制画笔尺寸,Python画笔的属性及用法详解
画笔有颜色.画线的宽度等属性. 1.turtle.pensize():设置画笔的宽度: 2.turtle.pencolor():没有参数传入返回当前画笔颜色:传入参数设置画笔颜色,可以是字符串如&qu ...
最新文章
- css中 margin: 0px 254px 0px 254px; 是什么意思。
- c++疯狂代码之读和写。。。(用读操作来触发写)
- ThinkPHP(3)SQL查询语句
- Python爬虫开发:fake_useragent库伪造User-Agent
- wxWidgets:wxMessageDialog类用法
- 基于Web用户控件的Portal
- 王道408数据结构——第五章 树与二叉树
- 函数 (四) 迭代器和生成器
- java 计算器类图_多态计算器(封装、继承、多态、简单工厂)
- icem密度盒怎么设置_哪种外卖盒最健康?常吃外卖的必知!
- MySQL 学习四 SQL优化
- 计算机组成原理第6版课后答案,计算机组成原理第6章习题参考答案
- 如何在Linux上下载MongoDB
- ccf分区查询_CCF CSP和CCF CCSP简介
- 第二次团队作业 -- 预则立他山之石
- 现在win7系统还能升级win10系统吗?win10系统怎么重装?
- 分隔符中的分页符与分节符
- 【图像增强】基于matlab Frangi滤波器血管图像增强【含Matlab源码 2108期】
- 如何用adobe audition剪切音频单独导出保存
- mysql小知识:根据指定日期,获取是当年第几周