十八、异常处理(了解)

十八、异常处理(了解)

异常处理: Python程序运行语法出错会有异常抛出 不处理异常会导致程序终止

异常种类 异常种类
IndentationError 缩进对齐代码块出现问题
NameError 自定义标识符找不到
IndexError 下标错误
KeyError 键名出错
AssertionError 断言异常
SyntaxError 语法错误
AttributeError 找不到属性
TypeError 类型错误,传入的类型不匹配
KeyboardInterrupt ctrl + c 被按下
ImportError 导入模块出错,基本是路径错误或名称错误
IoError 输入输出操作失败,基本是无法打开文件

示例: 异常处理的简单应用

方式一
try:
    可能会出现异常的代码
except: Exception as e:  #as相当于取别名,e是变量名,可以自定义,as e相当于把异常信息保存到变量e中去
    print(e)  #打印输出异常信息
方式二
try:
    可能会出现异常的代码
expect:
    出现异常现象的处理代码
else:
    没有捕获到异常执行的代码
方式三
try:
    可能出现异常的代码
expect:
    出现异常现象的处理代码
else:
    没有捕获到异常执行的代码
finally:
    try代码块结束后运行的代码(表示无论是否检测到异常都会执行)

try语句

1. 首先,执行try子句(在关键字try和关键字except之间的语句)。
2. 如果没有异常发生,忽略except子句,try子句执行后结束。
3. 如果在执行try子句的过程中发生了异常,那么try子句余下的部分将被忽略。
4. 如果异常的类型和 except 之后的名称相符,那么对应的except子句将被执行。最后执行 try 语句之后的代码。
5. 如果一个异常没有与任何的except匹配,那么这个异常将会报错并终止程序。

示例:异常处理的多分支应用

list1=[1,2,3]
try:
    print(list1[3])
except TypeError as err:
    print("error1",err)
except SyntaxError as err:
    print("error2:",err)
except Exception as err:
    print("error3",err)
else: # 没有异常,会执行;有异常被捕捉到不会执行;有异常没被捕捉到也不会执行
    print("everything is ok,do it!")
finally: # 没有异常,有异常被捕捉到,有异常没有被捕捉到,finally里的代码都会执行
    print("no matter what,do it!")
print("haha")
posted @ 2023-06-27 16:49  村尚chun叔  阅读(13)  评论(0)    收藏  举报