#try……except……finally
# 异常处理语句
#在编写程序中,运行时,总会出现一些意想不到的错误,这些错误往往只是九牛一毛,但对于程序,却是重达千金
#使用异常处理语句,可以及时解决程序代码中的一些简单的问题,对程序的运行 起到至关重要的部分
try语句为一组语句指定异常处理程序和/或清理代码:
except子句指定一个或多个异常处理程序。
finally子句总是被执行
异常语句常用格式
try:
正常执行语句
except:
异常时执行语句
finally:
总是执行语句
ty = [1,2,3,"a","b","c",[6,7,8]]
iny = []
try:
for i in ty:
print(i)
if isinstance(i,int):
iny.append(i)
except:
print("遍历列表,查找其中的整数")
finally:
print("列表遍历")
print(iny)
如果except子句头中的表达式求值引发异常,则取消对处理程序的原始搜索,
并在周围的代码和调用堆栈中开始搜索新的异常(它被视为整个try语句引发了异常)。
当找到匹配的except子句时,将异常赋值给except子句中的as关键字之后指定的目标
(如果存在的话),并执行except子句的套件。所有except子句必须有一个可执行块。
当到达这个块的末尾时,继续正常执行如果控制流离开try套件,没有引发异常,也没有执行return、continue或break语句,
则执行可选的else子句。else子句中的异常不被前面的except子句处理。
try:
正常执行语句
except:
异常时执行语句
list = [1,["a","b","c"],"ert",2,3,[1,2,3,4]]
for i in list:
try:
for j in i:
try:
print("正常遍历 ")
except:
print("错误遍历")
try:
print("参数是整数")
isinstance(j,int)
except:
print("否")
except:
print("遍历错误")
a = ("a","b","c","d","e")
b = ("a","d","g","u","i")
num1 = 0
num2 = 0
for i in a:
try:
#在b元组中查找对应的a中的字符 ,这种情况下,如若 b中没有对应时,便会报错,这时使用异常处理语句,便可解决这一问题
b.index(i)
num1+=1
except:#在上述语句中出现异常时,运行本语句下的内容
num2+=1
print("重复个数:",num1)
print("不重复个数:",num2)
list = [1,["a","b","c"],"ert",2,3,[1,2,3,4]]
for i in list:
try:
for j in i:
try:
print("正常遍历 ")
except:
print("错误遍历")
try:
print("参数是整数")
isinstance(j,int)
except:
print("否")
except:
print("遍历错误")
在finally子句执行期间,异常信息对程序不可用。
当在try…finally语句的try套件中执行return、break或continue语句时,finally子句也会在“退出时”执行。
函数的返回值由最后执行的返回语句决定。因为finally子句总是被执行,
所以在finally子句中执行的return
语句总是最后一个被执行的
try:
正常执行语句
finally:
总是执行语句
def f():
try:
1
finally:
return 43
print(f())
def f():
try:
print("hello world")
finally:
return 43
print(f())