Python培训教程分享:Python异常机制
在学习Python技术的时候,我们经常会遇到一些异常,例如导致程序在运行过程中出现的中断或退出,我们都称之为异常,大多数的异常都不会被程序处理,而是以错误信息的形式展现出来。本期Python培训教程就算教大家关于Python异常机制的内容。
Python培训教程分享:Python异常机制,首先我们要理解什么叫做异常?
在程序运行过程中,总会遇到各种各样的问题和错误。有些错误是我们编写代码时自己造成的:比如语法错误、调用错误,甚至逻辑错误。还有一些错误,则是不可预料的错误,但是完全有可能发生的:比如文件不存在、磁盘空间不足、网络堵塞、系统错误等等。
这些导致程序在运行过程中出现异常中断和退出的错误,我们统称为异常。大多数的异常都不会被程序处理,而是以错误信息的形式展现出来。
异常的分类:
异常有很多种类型,Python内置了几十种常见的异常,无需特别导入,直接就可使用。
需要注意的是,所有的异常都是异常类,首字母是大写的!
异常的危害:
如果程序中一旦出现了异常的语句代码,则该异常就会立即中断程序的运行!
因此:为了保证程序的正常运行,提高程序健壮性和可用性。我们应当尽量考虑全面,将可能出现的异常进行处理,而不是留在那里,任由其发生。
基本语法:
异常的基本结构:try except
# (1)通用异常
try:
pass # 正常执行语句
except Exception as ex:
pass # 异常处理语句
# (2)指定异常
try:
pass # 正常执行语句
except <异常名>:
pass # 异常处理语句
#(3) 捕获多个异常
# 捕获多个异常有两种方式,第一种是一个except同时处理多个异常,不区分优先级:
try:
pass # 正常执行语句
except (<异常名1>, <异常名2>, ...):
pass # 异常处理语句
# 第二种是区分优先级的:
try:
pass # 正常执行语句
except <异常名1>:
pass # 异常处理语句1
except <异常名2>:
pass # 异常处理语句2
except <异常名3>:
pass # 异常处理语句3
# 异常嵌套
try:
try:
with open("abc") as f:
pass
except NameError as e:
print(e)
except OSError as e:
print("OSError:",e.strerror)
机制说明:
首先,执行try子句(在关键字try和关键字except之间的语句)
如果没有异常发生,忽略except子句,try子句执行后结束。
如果在执行try子句的过程中发生了异常,那么try子句余下的部分将被忽略。如果异常那么对应的except子句将被执行。
在Python的异常中,有一个通用异常:Exception,它可以捕获任意异常。
finally
try:
pass # 正常执行语句
except Exception as e:
pass # 异常处理语句
finally:
pass # 无论是否发生异常一定要执行的语句,比如关闭文件,数据库或者socket
raise语句
很多时候,我们需要主动抛出一个异常。Python内置了一个关键字raise,可以主动触发异常。
raise可以抛出自定义异常,我们已将在前面看到了python内置的一些常见的异常类型。大多数情况下,内置异常已经够用了。但是有时候你还是需要自定义一些异常:自定义异常应该继承Exception类,直接继承或者间接继承都可以,例如:
# 1.用户自定义异常类型
class TooLongExceptin(Exception):
"this is user's Exception for check the length of name "
def __init__(self, len):
self.len = len
def __str__(self):
return "输入姓名长度是" + str(self.len) + ",超过长度了"
try:
name = input("enter your name:")
if len(name) > 5:
raise TooLongExceptin(len(name))
else:
print(name)
except TooLongExceptin as error: # 这里异常类型是用户自定义的
print("打印异常信息:", error)
Python培训教程分享:Python异常机制相关推荐
- Python培训教程分享:Python模块如何导入__all__属性?
本期小编为大家带来的Python培训教程是关于"Python模块如何导入__all__属性?"的内容,后面在工作中是会遇到Python模块这个工作内容的,Python模块的开头通常 ...
- Python培训教程分享:10款超好用的Python开发工具
学会Python技术后,我们在参加工作的时候如果能有辅助工具的话,那么会很大程度的提高我们的工作效率,那么Python都有哪些好用的开发工具呢?下面小编就为大家详细的介绍一下10款超好用的Python ...
- Python培训教程分享:有哪些值得使用的爬虫开源项目?
相信很多同学在学习Python技术的时候,都有学习到Python爬虫技术,爬虫技术在各大互联网公司都是非常常见的,可以帮助我们获取各种网站的信息,比如微博.B站.知乎等,本篇Python培训教程分享为 ...
- Python培训教程分享:visual studio编写python怎么样?
本期小编要为大家介绍的Python培训教程就是关于"visual studio编写python怎么样?"的问题,但答案当然是可以的,据了解,vs2017.vs2019都集成了pyt ...
- Python培训教程分享:Python中选择结构是什么
越来越多的人开始报名学习Python技术,那么学习Python技术不是一两天就能学会的,本期小编为大家推荐的Python培训教程主要讲的是"Python中选择结构是什么",下面来看 ...
- Python培训教程分享:如何实现pygame的初始化和退出操作?
本期小编为大家介绍的Python培训教程是关于"如何实现pygame的初始化和退出操作?"的内容,pygame模块针对不同的开发需求提供了不同的子模块,例如显示模块.字体模块.混音 ...
- Python培训教程分享:“高效实用” 的Python工具库
作为一名合格Python技术员,对于Python工具库的使用是少不了的,本期Python培训教程就为大家分享的是""高效实用" 的Python工具库",希望能够 ...
- Python培训教程:Python有哪些比较重要的内置函数?
学习Python技术或者参加Python工作的小伙伴们应该都知道,在Python编程语言中会经常出现很多内置函数,很少有人清楚这些函数,但是它的功能是不可小觑的,下面小编就为大家详细介绍一下Pytho ...
- Python培训教程:Python内置数据结构之双向队列
经常听说Python就是一门执行速度低的语言,可能是你的程序中使用了复杂的算法与数据结构,才会导致程序执行速率低的.在Python的标准库中提供了常见的数据结构工开发者使用,不仅执行速率比较快,还可以 ...
最新文章
- redis企业级应用(下)-如何维护redis的key
- 关于Delphi中的字符串的详细分析
- PAT甲级1113 Integer Set Partition:[C++题解]贪心
- 傍腾讯,切阿里,拼多多的千亿瞒天术
- NBU调用crontab备份
- android sharedpre,android 数据存储一SharedPrenference存储简单数据
- 网页打不开微信连接到服务器失败是怎么回事,微信打不开网页怎么回事?
- Qos令牌桶技术原理
- SQL语句Not IN优化方案
- 如何用Matlab计算相关系数和偏相关系数
- 电商后台管理系统——权限管理模块
- Vscode 新建HTML文件
- css斜线边框,CSS border斜线效果
- mset redis_Redis MSET 命令-Redis MSET命令详解教程-Redis MSET使用案例-嗨客网
- 硬盘MBR格式转换GPT,简单方法,你会吗?
- 2021年中职组“网络安全”赛项内蒙古自治区竞赛任务书
- ]获取android应用的MD5签名
- 独立看门狗和窗口看门狗的区别
- Win10 -- CUDA10 CUDNN 安装
- 北京格林深瞳算法实习生面试