Python 基础之异常
来源:互联网 发布:淘宝自主品牌女装 编辑:程序博客网 时间:2024/05/22 09:49
- 异常
- 什么是异常
- 按自己的方式出错
- raise语句
- 自定义异常类
- 捕捉异常
- 多条except子句
- 用一个块捕捉两个异常
- 捕捉对象
- else
- 最后
异常
什么是异常
Python 用异常对象(exception object)来表示异常情况。遇到错误后,会引发异常。如果异常对象并未被处理或者捕捉,程序就会用所谓的回溯(Traceback,一种错误信息)终止执行。
>>> 1/0Traceback (most recent call last): File "<pyshell#0>", line 1, in <module> 1/0ZeroDivisionError: division by zero
事实上每个异常都是一些类的实例,这些实例可以被引发,并且可以用很多种方法进行捕捉,是的程序可以捉住错误并且进行处理,而不是让整个程序失败。
按自己的方式出错
异常可以在某些东西出错时自动引发,甚至创建自己的异常类型。
raise语句
为了引发异常,可以使用一个类(Exceptiond的子类)或者实例参数调用raise语句。
>>> raise IOErrorTraceback (most recent call last): File "<pyshell#1>", line 1, in <module> raise IOErrorOSError>>> raise IOError("error")Traceback (most recent call last): File "<pyshell#2>", line 1, in <module> raise IOError("error")OSError: error
自定义异常类
尽管內建的异常类已经包括了大部分的情况,而且对于很多要求都已经满足了。但是!!!在有些时候还是要创建自己的异常类。方法是使用继承来实现。但是是必须从Exception类继承(也可以是其子类)。
class NewException(Exception): pass
捕捉异常
捕捉异常使用try/except来实现。
try: x=10 y=0 print (x / y)except ZeroDivisionError: print("y can't be zero!")# result:# y can't be zero!
多条except子句
try: x=input("Enter the first number: ") y=input("Enter the second number: ") print(x/y)except ZeroDivisionError: print("The second number can't be zero!")except TypeError: print("That wasn't a number,was it?")#result:#That wasn't a number,was it?
用一个块捕捉两个异常
将其作为元祖列出
try: x=input("Enter the first number: ") y=input("Enter the second number: ") print(x/y)ex自cept (ZeroDivisionError,TypeError,NameError): print("Your name were bogus...")
捕捉对象
try: x=10 y=0 print(x/y)except(ZeroDivisionError,TypeError,NameError) as e: print(e)
这种写法可以将异常打印出来
else
try : print ("A is simple task")except : print('What?')else: print("It went as planed.")
自行领悟其中精髓
最后。。。
不管try子句中是否发生异常,finally子句一定会执行。
try: x = 2/4except NameError: print("Unknow variable")else : print("That went well")finally: print("Cleaning up")
阅读全文
0 0
- python基础之异常
- Python 基础之异常
- python基础之异常处理
- python基础之异常处理
- python基础之各种异常及其解决方案
- Python零基础入门十三之异常
- Python基础之七异常与调试
- python异常基础
- Python<2>异常基础
- Python基础:23异常
- Python基础--异常
- python基础--异常
- Python 基础-捕获异常
- python 异常基础内容
- Python编程基础之九错误和异常
- python基础之异常处理、调试和正则表达式
- C++基础之异常
- java基础之异常
- java生成csv,txt文件
- 从软硬件市场看IT三大定律之一 — 安迪-比尔定律
- 实战 | 这是一个转型AI的励志故事,从非科班到拿下阿里云栖一等奖,他经历的坑足够你学习100天
- 张量功率谱CAMB参数调试
- 高通投资商汤,是因为手机刷脸市场吗?阿里巴巴再砸AI芯片,弄啥咧 | AI三分钟
- Python 基础之异常
- Python深入学习之内存管理
- JavaSE基础 集合2
- MySQL创建全文索引
- 指针的四种用法
- 今夕何夕
- TortoiseSVN的bin目录下面没有svn.exe
- 逆序数
- 《新一代人工智能发展规划》全面启动:科技部公布首批新一代人工智能开放创新平台名单