当前位置: 移动技术网 > IT编程>脚本编程>Python > PythonTask03:异常处理

PythonTask03:异常处理

2020年07月26日  | 移动技术网IT编程  | 我要评论

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网