Python_base_04 异常捕捉

表现形式:

try:

  可能出现异常的代码块

except Exception as 变量名:

  遇到异常时的处理方式

  打印变量

异常处理中使用else

含义:

如果没有捕获到异常,则执行else中的代码块

表现形式:

try:

  可能出现异常的代码块

except Exception:

  遇到异常时的处理方式

else:

  没捕获到异常时执行的代码块

示例:

复制代码
1 try:
2     print("abcdefg")
3 except Exception:
4     print("---已知晓异常---")
5 else:
6     print("程序无异常")
7 print("Hello World")
复制代码

运行结果:

abcdefg
程序无异常
Hello World

异常处理中使用finally

含义:

无论是否捕获到异常,最后都需执行finally中的代码块

表现形式:

try:

  可能出现异常的代码块

except Exception:

  遇到异常时的处理方式

else:

  没捕获到异常时执行的代码块

finally:

  最后一定会执行的代码块

示例:

复制代码
1 try:
2     f = open("test.txt","r")
3 except Exception:
4     print("---已知晓异常---")
5 else:
6     print("程序无异常")
7 finally:
8     f.close()
9 print("Hello World")
复制代码

运行结果:

---已知晓异常---
Traceback (most recent call last):
  File "F:/untitled/Python_jichu/异常.py", line 8, in <module>
    f.close()
NameError: name 'f' is not defined

说明:

因为不存在test.txt文件,所以f.close()会报错退出

 替换错误类型,并打印出错误信息,如下图:

finally 是不管有没有异常,都会执行的。 

原文地址:https://www.cnblogs.com/tianpin/p/10078003.html