python进阶教程之异常处理,python进阶教程

python非凡管理

try前边接except或finally那八个只可以用三个,用了except就不可能用finally
 

python进级教程之卓殊管理,python升级教程

在品种开拓中,万分管理是少不了的。格外管理补助大家debug,通过进一层丰盛的音信,让大伙儿更易于找到bug的四方。分外管理还足以增强程序的容错性。

俺们事前在讲循环对象的时候,曾提到三个StopIteration的不得了,该极其是在循环对象穷尽全部因素时的报错。

大家以它为例,来注明为主的不胜处理。

八个满含非常的次第:

复制代码 代码如下:

re = iter(range(5))

for i in range(100):
    print re.next()

print ‘HaHaHaHa’

首先,我们定义了三个生生不息对象re,该循环对象将打开5次巡回,每趟使用类别的二个因素。

在跟着的for循环中,大家手工业调用next(卡塔尔(قطر‎函数。当循环举行到第6次的时候,re.next(卡塔尔(قطر‎不会再回来成分,而是抛出(raise卡塔尔(قطر‎StopIteration的老大。整个程序将会暂停。

咱俩得以订正上述分外程序,直到完美的未有bug。但风度翩翩边,假使大家在写程序的时候,知道这里恐怕犯错以致大概的犯错类型,大家得以本着该非常类型定义好”救急预案“。

复制代码 代码如下:

re = iter(range(5))

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

print ‘HaHaHaHa’

在try程序段中,大家放入轻松犯错的局地。我们可以跟上except,来表达假诺在try部分的口舌发生StopIteration时,程序该做的政工。若无发出至极,则except部分被跳过。

随着,程序将继承运营,而不是根本中断。

完全的语法构造如下:

复制代码 代码如下:

try:
    …
except exception1:
    …
except exception2:
    …
except:
    …
else:
    …
finally:
    …

如若try中有十二分发生时,将实践非凡的归于,实行except。非凡稀有相比较,看是还是不是是exception1,
exception2…,直到找到其归于,施行相应的except中的语句。假设except后面没有别的参数,那么表示具有的exception都交给这段程序管理。比方:

复制代码 代码如下:

try:
    print(a*2)
except TypeError:
    print(“TypeError”)
except:
    print(“Not Type Error & Error noted”)

是因为a没有定义,所以是NameError。格外最后被except:部分的顺序捕捉。

只要不可能将十一分交给合适的目的,十分将继续向上层抛出,直到被捕捉只怕导致主程序报错。比方下边包车型地铁顺序

复制代码 代码如下:

def test_func():
    try:
        m = 1/0
    except NameError:
        print(“Catch NameError in the sub-function”)

try:
    test_func()
except ZeroDivisionError:
    print(“Catch error in the main program”)

子程序的try…except…构造不或许管理相应的除以0的荒诞,所以错误被抛给上层的主程序。

万后生可畏try中从不非常,那么except部分将跳过,实践else中的语句。

finally是随意是或不是有那么些,最终都要做的黄金时代对作业。

流程如下,

复制代码 代码如下:

try->异常->except->finally

try->无异常->else->finally

抛出相当

咱俩也能够自个儿写三个抛出相当的例子:

复制代码 代码如下:

print ‘Lalala’
raise StopIteration
print ‘Hahaha’

这一个例子不持有任何实际意义。只是为着表达raise语句的功能。

StopIteration是多个类。抛出极度时,会自行有贰在那之中间环节,就是生成StopIteration的三个对象。Python实际上抛出的,是这一个指标。当然,也得以活动转移对象:

复制代码 代码如下:

raise StopIteration()

总结

try: … except exception: … else: … finally: …
raise exception

对于python教程中管理特其他标题

提出你把格式调好了再来提问,瞧注重晕
 

在档期的顺序支付中,十分管理是少不了的。十分处理帮忙大家debug,通过进一步助长的音信,让民众更…

发表评论

电子邮件地址不会被公开。 必填项已用*标注