博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python之异常处理
阅读量:7185 次
发布时间:2019-06-29

本文共 2083 字,大约阅读时间需要 6 分钟。

什么是错误?

1.语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正)

#语法错误示范一if#语法错误示范二def test:    pass#语法错误示范三print(haha

2.逻辑错误(逻辑错误)

#用户输入不完整(比如输入为空)或者输入非法(输入不是数字)num=input(">>: ")int(num)#无法完成计算res1=1/0res2=1+'str'

 

什么是异常?

  异常就是程序运行时发生错误的信号。

  程序一但发生错误,就从错误的位置停下来,不继续中执行。

l=['egon','aa']l[3]
触发IndexError
dic={
'name':'hh'}dic['age']
触发KeyError
s='hello'int(s)
触发ValueError
AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性xIOError 输入/输出异常;基本上是无法打开文件ImportError 无法引入模块或包;基本上是路径问题或名称错误IndentationError 语法错误(的子类) ;代码没有正确对齐IndexError 下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5]KeyError 试图访问字典里不存在的键KeyboardInterrupt Ctrl+C被按下NameError 使用一个还未被赋予对象的变量SyntaxError Python代码非法,代码不能编译(个人认为这是语法错误,写错了)TypeError 传入对象类型与要求的不符合UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,导致你以为正在访问它ValueError 传入一个调用者不期望的值,即使值的类型是正确的
常用异常
ArithmeticErrorAssertionErrorAttributeErrorBaseExceptionBufferErrorBytesWarningDeprecationWarningEnvironmentErrorEOFErrorExceptionFloatingPointErrorFutureWarningGeneratorExitImportErrorImportWarningIndentationErrorIndexErrorIOErrorKeyboardInterruptKeyErrorLookupErrorMemoryErrorNameErrorNotImplementedErrorOSErrorOverflowErrorPendingDeprecationWarningReferenceErrorRuntimeErrorRuntimeWarningStandardErrorStopIterationSyntaxErrorSyntaxWarningSystemErrorSystemExitTabErrorTypeErrorUnboundLocalErrorUnicodeDecodeErrorUnicodeEncodeErrorUnicodeErrorUnicodeTranslateErrorUnicodeWarningUserWarningValueErrorWarningZeroDivisionError
更多异常

异常处理

  异常发生之后,异常之后的代码就不执行了。

  python解释器检测到错误,触发异常(也允许程序员自己触发异常)。

  程序员编写特定的代码,专门用来捕捉这个异常(这段代码与程序逻辑无关,与异常处理有关)。

  如果捕捉成功则进入另外一个处理分支,执行你为其定制的逻辑,使程序不会崩溃,这就是异常处理。

为什么要进行异常处理?

  python解析器去执行程序,检测到了一个错误时,触发异常,异常触发后且没被处理的情况下,程序就在当前异常处终止,后面的代码不会运行,谁会去用一个运行着突然就崩溃的软件。

  所以你必须提供一种异常处理机制来增强你程序的健壮性与容错性 。

try:    # 我们需要处理的代码except 错误类型:    # 发生该错误类型时执行的代码except 错误类型:  # 多分枝结构    # 发生该错误类型时执行的代码except Exception:  # 万能异常,应放在最后    # 发生该错误类型时执行的代码else:    # 没有异常时执行此代码finally:    # 不管代码有没有异常,都要执行此代码、    # 是否有return返回都会执行finally    # 函数里做异常处理时使用,用来进行一些收尾工作# except Exception as error:    # print('   ',error)  # 可以将错误的原因打印出来

 

转载于:https://www.cnblogs.com/xfdhh/p/10911225.html

你可能感兴趣的文章
phonegap ios开发环境搭建
查看>>
NOIP2003 传染病控制
查看>>
【java】深入分析Java ClassLoader原理
查看>>
c# 自定义事件,实现变量的值改变后就触发该事件
查看>>
AMD OpenCL大学教程(8)
查看>>
【转】实现运动的尾巴效果
查看>>
leetcode Permutations II 无重全排列
查看>>
微信开发好的地址
查看>>
Linux菜鸟级重点
查看>>
字节排序问题
查看>>
python3读取chrome浏览器cookies
查看>>
android 网络编程 HttpGet类和HttpPost类使用详解
查看>>
添加图片后xcode报错:resource fork, Finder information, or similar detritus not allowed
查看>>
CSS-背景渐变的兼容写法
查看>>
正则表达式--列表
查看>>
Unity3D占用内存太大的解决方法
查看>>
BootStrap框架及其他框架布局技术
查看>>
LOJ #2183「SDOI2015」序列统计
查看>>
k8s常用命令
查看>>
树的子结构
查看>>