一. python错误处理,,一. 错误处理异常处


一. 错误处理

异常处理捕捉异常可以使用try/except语句。try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。如果你不想在异常发生时结束你的程序,只需在try里捕获它。
格式:try :     语句1except 错误代码 as e:    语句2except 错误代码 as e:    语句3......except 错误代码 as e:    语句nelse:    语句e    
注意  else 可有可无作用: 用来检测try 语句块的错误  从而让except语句捕获异常信息并处理逻辑: 当程序执行到try ---except --else 语句时1  如果try 语句1 执行出现错误 会匹配第一个错误码 如果匹配上就执行 语句2 如果当try 语句1 执行出现错误  没有匹配的异常 错误将会 被提交到上一层的try 语句 或者到程序的最上一层3 如果当try 语句1 执行没有出现错误 执行else 下的语句e
try:    print(3/1)except NameError as e:    print("没有改变量")except ZeroDivisionError as e:     print("除数为0")else:    print("代码没有问题了")print(".....................................")# 使用except 而不使用 任何的错误类型try:    print(4/0)    print(num)except:    print("程序出现了异常")# 使用except带有多种异常try:   print(5/0)except(NameError,ZeroDivisionError)print("出现了NameError或‘ZeroDivisionError")  
以上例子不管 try 子句里面有没有发生异常,finally 子句都会执行。如果一个异常在 try 子句里(或者在 except 和 else 子句里)被抛出,而又没有任何的 except 把它截住,那么这个异常会在 finally 子句执行后再次被抛出。下面是一个更加复杂的例子(在同一个 try 语句里包含 except 和 finally 子句):格式:try :     语句1except 错误代码 as e:    语句2except 错误代码 as e:    语句3......except 错误代码 as e:    语句nfinally:    语句f    作用 :语句t无论是否有错误 都讲执行最后的语句ftry:     print(1/0)finally:    print("必须执行我")
# Exception  万能异常处理try:    print("1")    1/0    name    2+‘3‘    [][‘K‘]except Exception:    print("错了")
异常名称    描述BaseException    所有异常的基类SystemExit    解释器请求退出KeyboardInterrupt    用户中断执行(通常是输入^C)Exception    常规错误的基类StopIteration    迭代器没有更多的值GeneratorExit    生成器(generator)发生异常来通知退出StandardError    所有的内建标准异常的基类ArithmeticError    所有数值计算错误的基类FloatingPointError    浮点计算错误OverflowError    数值运算超出最大限制ZeroDivisionError    除(或取模)零 (所有数据类型)AssertionError    断言语句失败AttributeError    对象没有这个属性EOFError    没有内建输入,到达EOF 标记EnvironmentError    操作系统错误的基类IOError    输入/输出操作失败OSError    操作系统错误WindowsError    系统调用失败ImportError    导入模块/对象失败LookupError    无效数据查询的基类IndexError    序列中没有此索引(index)KeyError    映射中没有这个键MemoryError    内存溢出错误(对于Python 解释器不是致命的)NameError    未声明/初始化对象 (没有属性)UnboundLocalError    访问未初始化的本地变量ReferenceError    弱引用(Weak reference)试图访问已经垃圾回收了的对象RuntimeError    一般的运行时错误NotImplementedError    尚未实现的方法SyntaxError    Python 语法错误IndentationError    缩进错误TabError    Tab 和空格混用SystemError    一般的解释器系统错误TypeError    对类型无效的操作ValueError    传入无效的参数UnicodeError    Unicode 相关的错误UnicodeDecodeError    Unicode 解码时的错误UnicodeEncodeError    Unicode 编码时错误UnicodeTranslateError    Unicode 转换时错误Warning    警告的基类DeprecationWarning    关于被弃用的特征的警告FutureWarning    关于构造将来语义会有改变的警告OverflowWarning    旧的关于自动提升为长整型(long)的警告PendingDeprecationWarning    关于特性将会被废弃的警告RuntimeWarning    可疑的运行时行为(runtime behavior)的警告SyntaxWarning    可疑的语法的警告UserWarning    用户代码生成的警告
""try:    print(3/1)except NameError as e:    print("没有改变量")except ZeroDivisionError as e:     print("除数为0")else:    print("代码没有问题了")print(".....................................")# 使用except 而不使用 任何的错误类型try:    print(4/0)    print(num)except:    print("程序出现了异常")# 使用except带有多种异常try:   print(5/0)except(NameError,ZeroDivisionError):         print("出现了NameError或‘ZeroDivisionError")

一. python错误处理

评论关闭