python基础:try...except...的详细用法
我们把可能发生错误的语句放在try模块里,用except来处理异常。except可以处理一个专门的异常,也可以处理一组圆括号中的异常,如果except后没有指定异常,则默认处理所有的异常。每一个try,都必须至少有一个except
1.异常类只能来处理指定的异常情况,如果非指定异常则无法处理
s1 = 'hello'
try:int(s1)
except IndexError as e: # 未捕获到异常,程序直接报错print (e)
2.多分支
s1 = 'hello'
try:int(s1)
except IndexError as e:print(e)
except KeyError as e:print(e)
except ValueError as e:print(e)
3.万能异常Exception
s1 = 'hello'
try:int(s1)
except Exception as e:print(e)
4.多分支+Exception
s1 = 'hello'
try:int(s1)
except IndexError as e:print(e)
except KeyError as e:print(e)
except ValueError as e:print(e)
except Exception as e:print(e)
5.异常的其他机构(try…finally语法)
try…finally语句无论是否发生异常都将会执行最后的代码。
语法如下:
try:
<语句>
finally:
<语句> #退出try时总会执行
raise
示例:
'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:725638078
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
s1 = 'hello'
try:int(s1)
except IndexError as e:print(e)
except KeyError as e:print(e)
except ValueError as e:print(e)
#except Exception as e:
# print(e)
else:print('try内代码块没有异常则执行我')
finally:print('无论异常与否,都会执行该模块,通常是进行清理工作')
6.主动触发异常(raise语句)
我们可以使用raise语句自己触发异常,raise语法格式如下:
raise [Exception [, args [, traceback]]]
语句中Exception是异常的类型(例如,NameError)参数是一个异常参数值。该参数是可选的,如果不提供,异常的参数是"None"。
最后一个参数是可选的(在实践中很少使用),如果存在,是跟踪异常对象。
示例:
一个异常可以是一个字符串,类或对象。 Python的内核提供的异常,大多数都是实例化的类,这是一个类的实例的参数。
定义一个异常非常简单,如下所示:
def functionName( level ):if level < 1:raise Exception("Invalid level!", level)# 触发异常后,后面的代码就不会再执行
try:raise TypeError('类型错误')
except Exception as e:print(e)
7.自定义异常
通过创建一个新的异常类,程序可以命名它们自己的异常。异常应该是典型的继承自Exception类,通过直接或间接的方式。
以下为与BaseException相关的实例,实例中创建了一个类,基类为BaseException,用于在异常触发时输出更多的信息。
在try语句块中,用户自定义的异常后执行except块语句,变量 e 是用于创建Networkerror类的实例。
class Networkerror(BaseException):def __init__(self,msg):self.msg=msgdef __str__(self):return self.msgtry:raise Networkerror('类型错误')
except Networkerror as e:print(e)
8.断言:assert条件
assert 1 == 1
assert 1 == 2
9.总结try…except
把错误处理和真正的工作分开来
代码更易组织,更清晰,复杂的工作任务更容易实现
毫无疑问,更安全了,不至于由于一些小的疏忽而使程序意外崩溃了
结尾给大家推荐一个非常好的学习教程,希望对你学习Python有帮助!
Python基础入门教程推荐:更多Python视频教程-关注B站:Python学习者
Python爬虫案例教程推荐:更多Python视频教程-关注B站:Python学习者
python基础:try...except...的详细用法相关推荐
- python基础 (一)import用法
python基础 (一)import用法 版权声明:本文参考CSDN博主「易冷cheng」的文章进行精简 原文链接:https://blog.csdn.net/qq_41092406/article/ ...
- Python控制键盘鼠标pynput的详细用法 (转载)
Python控制键盘鼠标pynput的详细用法 更新时间:2019年01月28日 15:15:16 作者:botoo 这篇文章主要介绍了Python控制键盘鼠标pynput的详细用法,小编觉得挺不 ...
- 万字长文爆肝Python基础入门【巨详细,一学就会】
目录 数据的名字和种类--变量和类型 初探数据种类 数据类型 数值运算 比较运算 变量和赋值 变量的好处 用赋值更新变量 变量和数据类型的关系 总结 数据类型 数值运算 数值比较 变量和赋值 一串数据 ...
- python基础笔记,超详细,包含面向对象基础,爬虫实战【持续更新中...】
前言: 本笔记中的函数和方法同义,面向python3 本笔记部分概念及代码由newbing搜集整理得出 本笔记适合有一定其他编程语言基础的同学,因为笔记中省略了部分基础概念(比如整型,浮点型等基本数据 ...
- python 基础知识点整理 和详细应用
Python教程 Python是一种简单易学,功能强大的编程语言.它包含了高效的高级数据结构和简单而有效的方法,面向对象编程.Python优雅的语法,动态类型,以及它天然的解释能力,使其成为理想的语言 ...
- [转载] Python基础——Numpy库超详细介绍+实例分析+附代码
参考链接: Python中的numpy.identity 1.NumPy简介 NumPy是高性能科学计算和数据分析的基础包,计算速度要比python自带的函数快很多,非常好用.一般不需要安装,装Pyt ...
- 【Python基础】random.shuffle()的用法
函数用法 random.shuffle()用于将一个列表中的元素打乱顺序,值得注意的是使用这个方法不会生成新的列表,只是将原列表的次序打乱. 代码案例 # shuffle()使用样例 import ...
- 【Python基础教程】for循环用法详解
如果明确的知道循环执行的次数或者是要对一个容器进行迭代(后面会讲到),那么我们推荐使用for-in循环,例如下面代码中计算 例: 用for循环实现1~100求和 sum = 0 for x in ra ...
- Python基础教程:元组详细使用
元组 元组和列表类似,但属于不可变序列,元组一旦创建,用任何方法都不可修改其元素. 元组的定义方式和列表相同,但定义时所有元素是放在一对圆括号"()"中,而不是方括号中. 1.元组 ...
- python基础教程:global的用法
Python中定义函数时,若想在函数内部对函数外的变量进行操作,就需要在函数内部声明其为global. 例子1 x = 1def func(): x = 2func() print(x) 输出:1 在 ...
最新文章
- P3806 【模板】点分治1
- CF338D GCD Table(拓展中国剩余定理,细节处理,2900分)
- Sublime Text 解决 Unable to download XXX 问题
- 通用分销渠道和通用产品组的解析
- 肝!十大 Python 机器学习库
- PHP实现微信随机红包算法和微信红包的架构设计简介
- windeployqt.exe的使用与避坑(windows平台)
- oracle merge 效率慢,更新语句的效率比较(merge into )
- centos安装mysql卡住_CentOS 6.4安装MySQL的过程中出现的bug
- 关于 php 用webservice传输数据的问题(nosoap与.NET对接)此处一直困扰三天时间,终于解决...
- 门禁系统产品选择与施工要点
- Bailian4123 马走日【DFS】
- 【风马一族_php】NO2_php基础知识
- Java开发揭秘!java反射和映射机制
- 爱荷华州立 计算机博士,2020年美国爱荷华州立大学博士全奖招生
- 2022年河南省安全保护服务人员(初级保安员)考试练习题及答案
- 明日之后无限金条服务器,明日之后:无限金条bug 你值得收藏
- 【突变检验合集】含Pettitt突变检验等
- 查看僵尸进程并杀掉僵尸进程
- 第29届奥运会中国代表团夺金榜