欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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的类具有继承关系,上个图如下
    PythonTask03:异常处理
    其中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 语句,实现文献读取更加简洁,无论在代码运行过程中,是否发
生异常,都会执行必要的清理操作,释放资源。
对比下:
PythonTask03:异常处理PythonTask03:异常处理
with语句完成时,会自动关闭文件。

本文地址:https://blog.csdn.net/weixin_45996005/article/details/107569387

相关标签: python