在Python编程中,异常就是程序在运行过程中出现的问题或错误,比如除数为零、文件找不到等等。而异常捕获,就是通过在代码中设置特定的语句,来捕捉这些异常,并对其进行处理,防止程序崩溃。
那么,如何进行异常捕获呢?下面来看常用捕获异常的几种方式:
-
第一种方式:try--except
try: # 尝试执行某段程序
num = 23 / 0
print(num)
except: # except用于捕获异常
print("报错了,不用慌...")
-
第二种方式:try--except(常用)
try:
num = 23 / 0
print(num)
except Exception as e: # except用于捕获异常,Exception表示异常类,as表示起别名
print("报错了,不用慌...")
print(e) # division by zero
-
第三种方式:try--except--else
"""
语法:
try:
可能存在异常的程序
except 错误表示码:
语句
...
else:
语句n
总结:
1.try-except-else 这个结构类似于 if-elif-elif...-else
2.try-except-else 中的else可有可无
3.执行流程:首先会执行try结构中的程序,如果try中的语句没有异常,则直接跳过所有的except语句,执行else语句,如果try中的语句有异常,则取except结构中取匹配错误,如果匹配到了则执行里面的语句
"""
# 没有异常的情况:
try:
num = 45 / 15
print(num)
except Exception as e:
print("有异常,走这里...")
else:
print("恭喜你,写的程序没有问题...")
# 有异常的情况:
try:
num = 45 / 0
print(num)
except Exception as e:
print("有异常,走这里...")
print(e)
else:
print("恭喜你,写的程序没有问题...")
-
第四种方式:try-except-finally
"""
语法:
try:
尝试执行的程序
except Exception as e:
语句
finally:
语句n
执行流程:不管try中的语句是否存在异常,也不管except有没捕获到异常,finally语句都会执行
"""
# 没有异常的情况
try:
num = 24 / 4
print(num)
except Exception as e:
print("有异常,走这里...")
print(e)
finally:
print("最后都会执行这里的程序")
# 有异常的情况
try:
num = 24 / 0
print(num)
except Exception as e:
print("有异常,走这里...")
print(e)
finally:
print("最后都会执行这里的程序")