python中协程的关闭与异常

python中协程的关闭与异常
python中协程的关闭与异常

 1、关闭一个协程

使用close()来关闭。

使用except捕获协程的关闭close():

grepclose.py

@coroutine
def grep(pattern):
print "Looking for %s" % pattern
try:
while True:
           line = (yield)
              if pattern in line:
               print line,
except GeneratorExit:
print "Going away.  Goodbye"

使用GeneratorExit这个异常类型

2、抛出一个异常

在一个协程中,可以抛出一个异常

g.throw(RuntimeError,"You're hosed")
 
Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "<stdin>", line 4, in grep
    RuntimeError: You're hosed

异常起源于yield表达式,可以用常规方法去抓取。

以上就是python中协程的关闭与异常,希望能对大家有所帮助。更多Python学习指路:python基础教程

发表评论

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