PythonTask03:异常处理
程序员文章站
2022-06-06 15:21:02
try except异常处理1.常见三种语法:try except (可以多个except)try except finally (finally语句一定会执行,表示与异常与否没关系,常用于关闭资源等清理工作)try except else (没发生异常不执行except语句,就会执行else语句)2.下面列出常见的8类异常IOError: 输入/输出异常;(基本上是无法打开文件)ImportError: 无法导入模块或包;(出现这个异常基本上是路径问题或名称错误)Indentatio...
try except异常处理
1.常见三种语法:
- try except (可以多个except)
- try except finally (finally语句一定会执行,表示与异常与否没关系,常用于关闭资源等清理工作)
- try except else (没发生异常不执行except语句,就会执行else语句)
2.下面列出常见的8类异常
- IOError: 输入/输出异常;(基本上是无法打开文件)
- ImportError: 无法导入模块或包;(出现这个异常基本上是路径问题或名称错误)
- IndentationError: 缩进错误;(代码没有正确对齐)
- NameError: 没有声明、或初始化对象
- KeyError:试图访问字典里不存在的键
- AttributeError:试图访问一个对象没有的属性
- TypeError :类型不匹配
- ValueError:传入一个调用者不期望的值,即使值的类型是正确的
python的类具有继承关系,上个图如下
其中Exception是所有非系统退出类异常类的基类, 因此在编程时,可以通过捕获它,来避免程序遇到错误而退出,如下图常见一揽子处理:
try:
# 语句块
pass
except Exception as e:
# 出现异常,执行的语句
pass
如果要具体了解是啥错误,那就不要用Exception,一个个列举,举个栗子
try:
int("abc")
s = 1 + '1'
f = open('test.txt')
print(f.read())
f.close()
except OSError as error:
print('打开⽂文件出错\n原因是:' + str(error))
except TypeError as error:
print('类型出错\n原因是:' + str(error))
except ValueError as error:
print('数值出错\n原因是:' + str(error))
3.下面利用异常和用户互动下——raise
try:
a = input("输入一个数:")
#判断用户输入的是否为数字
if(not a.isdigit()):
raise ValueError("a 必须是数字")
except ValueError as e:
print("引发异常:",repr(e))
输入一个数:a
引发异常: ValueError(‘a 必须是数字’)
用户输入的不是数字时——>程序会进入 if 判断语句,执行 raise 引发 ValueError 异常,由于其位于 try 块中——> raise 抛出的异常会被 try 捕获,由 except 块进行处理
4.使用with语句替代try-finally 语句,实现文献读取更加简洁,无论在代码运行过程中,是否发
生异常,都会执行必要的清理操作,释放资源。
对比下:
with语句完成时,会自动关闭文件。
本文地址:https://blog.csdn.net/weixin_45996005/article/details/107569387