在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)多异常处理相关推荐

  1. Python进阶之递归函数的用法及其示例

    作者 | 程序员adny 责编 | 徐威龙 封图| CSDN│下载于视觉中国 出品 |  AI科技大本营(ID:rgznai100) 本篇文章主要介绍了Python进阶之递归函数的用法及其示例,现在分 ...

  2. Python assert断言函数及用法

    Python assert断言函数及用法 Python assert 语句,又称断言语句,可以看做是功能缩小版的 if 语句,它用于判断某个表达式的值,如果值为真,则程序可以继续往下执行:反之,Pyt ...

  3. python的继承用法_【后端开发】python中继承有什么用法?python继承的用法详解

    本篇文章给大家带来的内容是关于python中继承有什么用法?python继承的用法详解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 面向对象三大特征 1.封装:根据职责将属性和方法 ...

  4. (Python)numpy的argmax用法

    (Python)numpy的argmax用法 解释 还是从一维数组出发.看下面的例子. import numpy as np a = np.array([3, 1, 2, 4, 6, 1]) prin ...

  5. python字符串find函数-python字符串查找函数的用法详解

    python字符串查找函数的使用 打开Python开发工具IDLE,新建"findstr.py'文件,并写代码如下: s ='/ab/bx,.s' print (s.find('/x')) ...

  6. python装饰器原理-Python装饰器原理与用法分析

    这篇文章主要介绍了Python装饰器原理与用法,结合实例形式分析了Python装饰器的概念.原理.使用方法及相关操作注意事项,需要的朋友可以参考下 本文实例讲述了Python装饰器原理与用法.分享给大 ...

  7. python装饰器原理-python装饰器原理与用法深入详解

    本文实例讲述了python装饰器原理与用法.分享给大家供大家参考,具体如下: 你会Python嘛? 我会! 那你给我讲下Python装饰器吧! Python装饰器啊?我没用过哎 以上是我一个哥们面试时 ...

  8. python中index函数_详解python中的index函数用法

    1.函数的创建 def fun(): #定义 print('hellow') #函数的执行代码 retrun 1 #返回值 fun() #执行函数 2.函数的参数 普通参数 :要按照顺序输入参数 de ...

  9. python控制画笔尺寸,Python画笔的属性及用法详解

    画笔有颜色.画线的宽度等属性. 1.turtle.pensize():设置画笔的宽度: 2.turtle.pencolor():没有参数传入返回当前画笔颜色:传入参数设置画笔颜色,可以是字符串如&qu ...

最新文章

  1. css中 margin: 0px 254px 0px 254px; 是什么意思。
  2. c++疯狂代码之读和写。。。(用读操作来触发写)
  3. ThinkPHP(3)SQL查询语句
  4. Python爬虫开发:fake_useragent库伪造User-Agent
  5. wxWidgets:wxMessageDialog类用法
  6. 基于Web用户控件的Portal
  7. 王道408数据结构——第五章 树与二叉树
  8. 函数 (四) 迭代器和生成器
  9. java 计算器类图_多态计算器(封装、继承、多态、简单工厂)
  10. icem密度盒怎么设置_哪种外卖盒最健康?常吃外卖的必知!
  11. MySQL 学习四 SQL优化
  12. 计算机组成原理第6版课后答案,计算机组成原理第6章习题参考答案
  13. 如何在Linux上下载MongoDB
  14. ccf分区查询_CCF CSP和CCF CCSP简介
  15. 第二次团队作业 -- 预则立他山之石
  16. 现在win7系统还能升级win10系统吗?win10系统怎么重装?
  17. 分隔符中的分页符与分节符
  18. 【图像增强】基于matlab Frangi滤波器血管图像增强【含Matlab源码 2108期】
  19. 如何用adobe audition剪切音频单独导出保存
  20. mysql小知识:根据指定日期,获取是当年第几周

热门文章

  1. 一分钟了解阿里云产品:补丁管理
  2. Unity GPU Instance踩坑记录
  3. 0.4-OpenCvSharp4调整图像亮度和对比度
  4. java stream sum_Java LongStream sum()用法及代码示例
  5. 微信小程序页面无限滚动流
  6. Spring第一天 IOC 控制反转JavaBean规范 Bean的作用域 生命周期 依赖注入
  7. 今天找到了一个不错的网络硬盘--G宝盘
  8. Makefile变量使用
  9. 如何提高客户满意度?为什么客户服务尤其重要?
  10. 整理一些比较好的计算机设计理念