try…except

有时候我们写程序的时候,会出现一些错误或异常,导致程序终止。使用try…except,这样程序就不会因为异常而中断。把可能发生错误的语句放在try模块里,用except来处理异常。except可以处理一个专门的异常,也可以处理一组圆括号中的异常,如果except后没有指定异常,则默认处理所有的异常。每一个try,都必须至少有一个except。

a=10

b=0

try:

c=a/b

print(c)

exceptZeroDivisionErrorase:

print(e)

print("done")

运行:

divisionbyzero

done

可以看出在有异常的情况下,程序依然执行完毕。

2.try…except…else

try…except…else语句,当没有异常发生时,else中的语句将会被执行。

a=10

b=0

try:

c=b/a

print(c)

except(IOError,ZeroDivisionError)asx:

print(x)

else:

print("noerror")

print("done")

运行:

0.0

noerror

done

3.raise引发一个异常

raise是引发一个异常来检查某个条件是否成立。

inputValue=4.2

iftype(inputValue)!=type(1):

raiseValueError

else:

print(inputValue)

运行:

...

raiseValueError

ValueError

4.try…finally

无论异常是否发生,在程序结束前,finally中的语句都会被执行。

a=10

b=0

try:

print(a/b)

finally:

print("alwaysexcute")

运行:

alwaysexcute

Traceback(mostrecentcalllast):

...

print(a/b)

ZeroDivisionError:divisionbyzero

可以看出finally最终执行,异常也照常报错。

5.try…except…finally

a=10

b=0

try:

print(a/b)

except:

print("error")

finally:

print("alwaysexcute")

结果:

error

alwaysexcute

6.自定义一个异常类

自定义一个MyException类,继承Exception。

classMyException(Exception):

def__init__(self,message):

Exception.__init__(self)

self.message=message

a=9

ifa<10>

try:

raiseMyException("myexcepitionisraised")

exceptMyExceptionase:

print(e.message)

结果:

myexcepitionisraised

7.把异常保存到一个日志文件中,来分析这些异常:

importtraceback

try:

print('here1:',5/2)

print('here2:',10/5)

print('here3:',10/0)

exceptExceptionase:

f=open("log.txt",'a')

#traceback.print_exc(file=f)#打印输出到屏幕

traceback.print_exc(file=f)#输出到文件

f.flush()

f.close()

结果:

here1:2.5

here2:2.0

会生成一个log.txt的文件。

8.捕获异常的小方法

方法一:捕获所有异常

a=10

b=0

try:

print(a/b)

exceptExceptionase:

print(Exception,":",e)

finally:

print("alwaysexcute")

运行:

alwaysexcute

方法二:采用traceback模块查看异常

importtraceback

try:

print('here1:',5/2)

print('here2:',10/5)

print('here3:',10/0)

exceptExceptionase:

traceback.print_exc()

运行:

here1:2.5

here2:2.0

Traceback(mostrecentcalllast):

File"/Users/lilong/Desktop/online_release/try_except_use.py",line59,in

print('here3:',10/0)

ZeroDivisionError:divisionbyzero

方法三:采用sys模块回溯最后的异常

importsys

try:

print('here1:',5/2)

print('here2:',10/5)

print('here3:',10/0)

exceptExceptionase:

info=sys.exc_info()

print(info[0],":",info[1])

运行:

here1:2.5

here2:2.0

注意:万能异常Exception被检测的代码块抛出的异常有多种可能性,并且我们针对所有的异常类型都只用一种处理逻辑就可以了,那就使用Exception,除非要对每一特殊异常进行特殊处理。

9.python所有的标准异常类:

异常名称描述BaseException:所有异常的基类SystemExit:解释器请求退出KeyboardInterrupt:用户中断执行(通常是输入^C)Exception:常规错误的基类StopIteration:迭代器没有更多的值GeneratorExit:生成器(generator)发生异常来通知退出SystemExitPython:解释器请求退出StandardError:所有的内建标准异常的基类ArithmeticError:所有数值计算错误的基类FloatingPointError:浮点计算错误OverflowError:数值运算超出最大限制ZeroDivisionError:除(或取模)零(所有数据类型)AssertionError:断言语句失败AttributeError:对象没有这个属性EOFError:没有内建输入,到达EOF标记EnvironmentError:操作系统错误的基类IOError:输入/输出操作失败OSError:操作系统错误WindowsError:系统调用失败ImportError:导入模块/对象失败KeyboardInterrupt:用户中断执行(通常是输入^C)LookupError:无效数据查询的基类IndexError:序列中没有没有此索引(index)KeyError:映射中没有这个键MemoryError:内存溢出错误(对于Python解释器不是致命的)NameError:未声明/初始化对象(没有属性)UnboundLocalError:访问未初始化的本地变量ReferenceError:弱引用(Weakreference)试图访问已经垃圾回收了的对象RuntimeError:一般的运行时错误NotImplementedError:尚未实现的方法SyntaxErrorPython:语法错误IndentationError:缩进错误TabErrorTab:和空格混用SystemError:一般的解释器系统错误TypeError:对类型无效的操作ValueError:传入无效的参数UnicodeErrorUnicode:相关的错误UnicodeDecodeErrorUnicode:解码时的错误UnicodeEncodeErrorUnicode:编码时错误UnicodeTranslateErrorUnicode:转换时错误Warning:警告的基类DeprecationWarning:关于被弃用的特征的警告FutureWarning:关于构造将来语义会有改变的警告OverflowWarning:旧的关于自动提升为长整型(long)的警告PendingDeprecationWarning:关于特性将会被废弃的警告RuntimeWarning:可疑的运行时行为(runtimebehavior)的警告SyntaxWarning:可疑的语法的警告UserWarning:用户代码生成的警告

参考:https://www.cnblogs.com/Lival/p/6203111.html

python try except作用_python try except有什么用?相关推荐

  1. python感叹号的作用_Python的作用

    电脑上安装python这个软件的作用是什么,我不懂.pycharm是输入python语如果把C语言比作笔芯,那么python就像装了笔芯的笔,两者都可以用来写字,但后者写起来可能更顺畅.具体来说,py ...

  2. python虚拟环境的作用_python虚拟环境搭建

    python的虚拟环境搭建方法一pyenv安装 git# yum install git -yPython依赖包安装# yum -y install gcc make patch gdbm-devel ...

  3. python requests的作用_Python爬虫第一课:requests的使用

    requests模块的入门使用 注意是requests不是request. 1.为什么使用requests模块,而不是用python自带的urllib requests的底层实现就是urllib re ...

  4. python查看方法作用_python学习笔记1,新手小白也能看得懂

    这是酸菜在风变编程上学习python时积累的学习笔记,希望能帮到同样也在学习中的小伙伴.持续更新~ 第0关 Print()函数 (1)不带引号:让计算机读懂括号里的内容,打印最终的结果 例:print ...

  5. python的类作用_python——类中的self到底的作用及三个应用场景

    class Test(object): def __init__ (self, val1): self.val0 = val1 def fun1(self): print(self.val0) def ...

  6. python单元测试框架作用_Python自动单元测试框架

    简介: 软件的测试是一件非常乏味的事情,在测试别人编写的软件时尤其如此,程序员通常都只对编写代码感兴趣,而不喜欢文档编写和软件测试这类"没有创新"的工作.既然如此,为什么不让程序员 ...

  7. python查看方法作用_python中有帮助函数吗

    python中的dir()函数是一个非常重要的函数,它可以帮助我们查看函数的功能和特性. 中文说明:不带参数时,返回当前范围内的变量.方法和定义的类型列表:带参数时,返回参数的属性.方法列表.如果参数 ...

  8. python 闭包的作用_python中对闭包的理解

    运行环境声明:本人的代码在sublime text 3中写的,可以Ctrl+b运行.python版本是python3.6.如果您直接运行的,请自觉加入if __name__ == '__main__' ...

  9. python斜杠作用_Python中正反斜杠(‘/’和‘\’)的意义与用法

    刚刚在学习些测试报告的时候,出现一个路径的问题,找了很久的原因,竟然是少了一个反斜杠引起的,在此顺便记录一下正反斜杠的作用. 在Python中,记录路径时有以下几种写法,如:(大家都知道\n是换行的意 ...

  10. python制表符的作用_Python制表符是什么

    通过之前的学习,相信大家对Python已经有了初步的了解.今天跟大家介绍下Python制表符. 什么是Python中的制表符呢? 制表符,也属于"写法是两个字符的组合,但含义上只是一个字符& ...

最新文章

  1. 主机信息收集工具DMitry
  2. Spring Boot 2.x基础教程:多文件的上传
  3. [Sdoi2008]沙拉公主的困惑
  4. Dubbo 一篇文章就够了:Dubbo遇到初恋
  5. 产品待办列表如何精化?
  6. 项目管理:项目管理为什么难?
  7. android设置输入框输入字符限制,Android EditText限制输入字符的方法总结
  8. yii ajax验证失败返回提示,Yii ajax显示错误提示,messagebox
  9. 互联网运营数据分析(3): 留存分析
  10. 10年专业导师整理的单片机控制电动机正反转设计类毕业论文文献
  11. 最简单的dubbo教程-快速入门
  12. 使用python处理视频文件,提取关键帧并保存【已调通】
  13. C51单片机实验——7段数码管实验
  14. jsp大学生兼职信息管理系统
  15. 我以为猫咪牙齿断了一点不要紧,结果…
  16. oracle goldengate 数据库复制配置手册
  17. 国外量化平台,以QuantOpian为例
  18. linux系统rc路由配置_Linux下多播路由的实现
  19. 解决GAMIT10.71解算北斗二号三号观测值问题
  20. 实现黑客帝国数字雨效果

热门文章

  1. html open属性,Dialog open 属性 定义和用法_HTML对象
  2. elsarticle模板 去掉摘要前后的两条横线
  3. 树莓派人脸识别_最全树莓派资料分享 顺手秀一下自己的杰作
  4. 联通网络远程服务器无响应,挂机宝服务器卡慢/死机/远程不上/等原因分析!
  5. IT战略规划做什么?
  6. android 酷炫菜单
  7. Sen+MK长时间序列趋势性分析----基于python的代码实现
  8. 每周全球科技十大新闻(2021.6.14-6.20)美国核能开放支持“矿工”
  9. EasyExcel 导出数据超过 Excel 单表上限了,该怎么办???
  10. iOS图片合成————(拍照换发)