Python中的Error和Exception

目录

概念

Error

Exception

异常类的继承关系

1.python异常处理一  

2.精确捕获异常类型

3.python异常处理二

4. 主动抛出异常


概念

什么是异常什么是错误:错误代码不可运行,异常代码可以运行
                    错误不可被处理,异常可以被处理

Error

错误(Error)
    通常是指程序的语法错误或逻辑错误,例如拼写错误、语法错误、缩进错误等。这些错误在程序运行前就会被检测到,
并且会抛出一个SyntaxError或者IndentationError等错误类型。

Exception

异常(Exception)
    则是指程序在运行过程中可能发生的错误,例如除零错误、文件不存在错误、输入输出错误等。
这些异常会在程序运行时被检测到,并且会抛出一个相应的异常类型。在编写程序时,我们可以使用try-except语句来捕获这些异常,
并且在异常发生时进行处理,使程序不会崩溃。
异常:   相当于'正常'而言,异常是一种代码"错误"(非致命性错误)现象
异常处理: 当一些异常出现后,进行对应的处理,解决异常问题, 使得程序能够继续执行下去,而不是直接终止。
           异常处理提高软件的容错能力

异常类的继承关系

异常类的继承关系:(由上到下一次继承)
                objcet
                BaseException  所有异常和错误的总类
                Exception
                TypeError  ValueError  KeyError DividezeroError 等

1.python异常处理一  

try:
    # 有可能出现的异常语句
except:
     # 如果捕获到异常,则会进入except中处理异常
else:
    # 不出现异常时执行else,及正常执行时执行else
finally:
       # finally中的代码,不管有没有发生异常,都是必须要执行的代码

2.精确捕获异常类型

try:
    # 有可能出现的异常代码
except 异常类型 as 变量名:
    print(变量名)
    处理语句
list_data = [1, 2, 3]
try:
    1 / 0
    # list_data[4]
    # data2
except Exception as i:
    print(i)      

# 对以上三个分别进行测试结果为 
"""
 1/0->division by zero   
 list_data[4]->list index out of range     
 data->name 'data2' is not defined
"""

3.python异常处理二

try:
    # 要执行的语句(多条语句,所以可能出现某些情况下出现一种异常
    #             在另一些情况下,出现另一种异常,也有可能有其他情况)
    #             在出现不同异常的时候要做出不同的处理
except 异常1:
           # 处理异常1
except 异常2:
           # 处理异常2          
except 异常3:
           # 处理异常3           
except Exception:
           # 未预知的异常情况
excl:
           # 不出现异常时执行,及正常执行      
finally:
           # finally中的代码,不管有没有发生异常,都是必须要执行的代码
           # 如资源回收、垃圾处理,链接的释放,等重要的工作   



4. 主动抛出异常

raise关键字:抛出异常对象
例:当data = 1 时抛出异常 ZeroDivisionError
try:
    data = 1
    raise ZeroDivisionError
except ZeroDivisionError:
    print("ZeroDivisionError")
多个异常执行相同的操作需要精确捕获:
list_data = [1, 2, 3, 4]
try:
    data2
    # 1 / 0
    # list_data[5]
except(ZeroDivisionError,NameError, IndexError):
    print("相同的操作")
       

你可能感兴趣的:(python,开发语言)