Python随记(11)异常处理 try语句

异常处理

  1. AssertionError:断言语句(assert)失败:就是当assert这个关键字后面的条件时假时,一般用于测试程序。
  2. A他tributeError:长是访问未知的对象属性。list.a >>AttributeError:'list' object has no attribute 'a'
  3. IndexError: 索引超出序列的范围
  4. KeyError: 字典中查找一个不存在的关键字。
  5. NameError: 尝试访问一个不存在的变量。
  6. OSError: 操作系统产生异常,像打开了一个不存在的文件会引发FileNotFoundRrror(OSError的子类)
  7. SynataxError: 语法错误
  8. TypeError: 不同类型间的无效操作
  9. ZeroDicisonError: 除数为零
  10. IndentationError: 缩进错误
  11. ValueError: 传入无效参数。

try-except语句,try-finally语句,raise语句,else语句,with语句

  1. try-except 用于检测和处理异常
try:
	x=int(input('请输入一个数字:'))
except:
	print('您输入的不是数字啦')

如果在意错误内容可以用 as 将具体错误打印出来。except OSError as reason: print(str(reason))
针对不同的异常可以设置多个except:一个try可以和多个except搭配

...
except OSError as reason:
	print(str(reason))
except TypeError as reason:
	print(str(reason))

#或者是except后面跟着多个异常,然后统一处理:
except(OSError, TpyeError):

#或者是捕获所有异常:
except:
	print('错了')

但是不建议使用捕获所有异常,毕竟可能会隐藏掉为准备的错误。
另外try语句的检测范围一旦出现异常,剩下的所有语句都不会在执行。
异常处理并不仅仅处理那些直接发生在 try 子句中的异常,而且还能处理子句中调用的函数(甚至间接调用的函数)里抛出的异常。

def this_fails():
        x = 1/0
   
>>> try:
        this_fails()
    except ZeroDivisionError as reason:
        print(str(reason) )
  
  1. try-finally
    如果try语句块中没有出现运行时的错误,会跳过except语句执行finally语句。如果出现异常,先执行except在执行finally。总之,finally语句块中的内容是一定要执行的。

  2. raise语句:就是认为抛出一个异常。

  3. else语句
    与if搭配,要么怎么样,要不不怎么样
    与for ,while 循环语句搭配,else语句块只在循环完成后执行。如果break跳出循环,那么else里面的内容就不会执行了。干完了能怎样,干不完就别想怎样。
    与异常搭配,没有问题,那就干嘛。只要try没有异常,就执行else里面的内容

5. with语句
with语句抽象出文件操作中频繁使用的try/finally/except相关细节。对文件使用with语句,将大大减少代码量,而且它可以自动帮助关闭文件。

try:
	with open('a.txt') as f:
		for each in f:
			print(each)
except:
	print('错了')
	
发布了25 篇原创文章 · 获赞 0 · 访问量 304

猜你喜欢

转载自blog.csdn.net/weixin_46192930/article/details/104906879