python学习笔记(18)异常处理

python学习笔记(18)异常处理

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!

原链:http://www.cnblogs.com/vamei/archive/2012/07/10/2582787.html#!comments

笔记:

#第18讲  异常处理

'''
re = iter(range(5))

for i in range(100):
    print(next(re))#next的方法跟python2不一致

print('hahaha')
'''
#上面这个程序是会报 stopinteration,不会执行print('hahaha')的打印


#except 用法
#做好可能出现的备案,发生错误的时候,执行;没有错误则except 跳过

'''
re = iter(range(5))

try:
    for i in range(100):
        print(next(re))
except StopIteration:
    print('here is end', i)

print ('hahaha')
'''


#完整语法结构:
try:
    ...
except exception1:
    ...
except exception2:
    ...
except:
    ...
else:
    ...
finally:
    ...

#如果try 有异常,就会执行except,层层比对,是否是exception1 还是2,执行相应except语句
#如果报错,可以可以在except 后面加print 打印,然后定位是哪个exception


    
try:
    print(a**2)
except TypeError:
    print('TypeError')
except:
    print('not typrerror & error note')

#因为a没有定义,应该是nameerror
#第一个except 不是typeerror,所以执行下一个except
#输出:not typrerror & error note



def test_func():#定义test_func
    try:#try
        m = 1/0
    except NameError:#除非nameerror,否则不执行
        print('catch NameError in func')#打印抓到了nameerror

try:
    test_func()
except ZeroDivisionError:#除非除0错误,否则不执行
    print('catch error in the main program')#打印error在主程序
    
#try 没有异常,就跳过了except,执行else的语句
#无论有没有异常,finally最后都要做的一些事情

'''
流程: try—异常—except—finally
try—无异常—else—finally
'''


#抛出异常

print ('Lalala')
raise StopIteration
print ('Hahaha')

#因为raise语句抛出了异常,所以没有执行完

#这里评论区发现一篇好文,先备注
#http://blog.csdn.net/sinchb/article/details/8392827

raise StopIteration()
#问题:区别

 

posted on 2017-10-20 16:07 liyihao 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/liyihao/p/7700003.html

你可能感兴趣的:(python)