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

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

引言

  python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误。你可以使用该功能来调试python程序。

  • 异常处理
  • 断言(Assertions)

基本语法

try:    可能发生异常的代码except 异常错误的类型 as e:        #e表示用来接受异常错误原因    pass                   #可以在此处打印提示人们错误原因

异常种类

常见异常

AttributeError 试图访问一个对象没有的属性IOError 输入/输出异常;基本上是无法打开文件ImportError 无法引入模块或包;基本上是路径问题或名称错误IndentationError 语法错误的子类,缩进错误IndexError 下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5]KeyError 试图访问字典里不存在的键KeyboardInterrupt Ctrl+C被按下NameError 使用一个还未被赋予对象的变量SyntaxError Python语法错误TypeError 传入对象类型与要求的不符合UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,导致你以为正在访问它ValueError 传入一个调用者不期望的值,即使值的类型是正确的

更多异常

ArithmeticErrorAssertionErrorAttributeErrorBaseExceptionBufferErrorBytesWarningDeprecationWarningEnvironmentErrorEOFErrorExceptionFloatingPointErrorFutureWarningGeneratorExitImportErrorImportWarningIndentationErrorIndexErrorIOErrorKeyboardInterruptKeyErrorLookupErrorMemoryErrorNameErrorNotImplementedErrorOSErrorOverflowErrorPendingDeprecationWarningReferenceErrorRuntimeErrorRuntimeWarningStandardErrorStopIterationSyntaxErrorSyntaxWarningSystemErrorSystemExitTabErrorTypeErrorUnboundLocalErrorUnicodeDecodeErrorUnicodeEncodeErrorUnicodeErrorUnicodeTranslateErrorUnicodeWarningUserWarningValueErrorWarningZeroDivisionError
View Code

异常处理

  一般情况下,如果我们对即将运行的代码有可能出现异常的担忧,可以使用异常处理来运行我们代码,但是在捕获异常时最好能够具体写清楚异常的类型。如果可能出现多种异常,可以使用if判断,也可以把异常类型放在一起写成元祖的形式(但是这样的话没法具体指导是哪一种异常报错),也可以将Exception这个万能异常放在判断的最后,以防出现了我们没有捕获到的异常。

s1 = 'hello'try:    int(s1)except IndexError as e:    print('出现了以下错误', e)except KeyError as e:    print('出现了以下错误', e)except ValueError as e:    print('出现了以下错误', e)except Exception as e:    print('出现了以下错误', e)
s1 = 'hello'try:    int(s1)except (IndexError,ValueError,KeyError) as e:    print('出现了以下错误', e)except Exception as e:    print('出现了以下错误', e)

其他异常结构

try:    # 主代码块    passexcept KeyError as e:    # 异常时,执行该块    passelse:    # 主代码正常执行完,执行该块,如出现异常,不执行该块    passfinally:    # 无论异常与否,最终执行该块    pass

主动触发异常

try:    raise Exception('错误了。。。')except Exception as e:    print(e)

自定义异常

class WusirException(Exception):    def __init__(self, msg):        self.message = msgtry:    raise WusirException('这是我自定义的异常')except WusirException as e:    print(e)

 

转载于:https://www.cnblogs.com/wusir66/p/10029392.html

你可能感兴趣的文章
Xcode模拟iPhone教程!
查看>>
JS实现背景图按时切换或者每次更新
查看>>
字符编码笔记:ASCII,Unicode和UTF-8
查看>>
C Linux read write function extension
查看>>
指针、数组和指针算术
查看>>
[Node.js] ECMAScript 6中的生成器及koa小析
查看>>
自定义图表技术解析
查看>>
c语言打开一个程序
查看>>
图像显示特效
查看>>
apollo配置中心初探
查看>>
elasticsearch配置
查看>>
jquery attr与prop的区别与联系
查看>>
swift基本运算符
查看>>
VMware Ubuntu安装
查看>>
斐波那契数列
查看>>
Web容量规划的艺术-要点
查看>>
c#高级编程第六版读书笔记二(委托)
查看>>
Linux打包压缩与安装卸载
查看>>
C++回调函数和静态成员函数。。。。
查看>>
study1
查看>>