如果执行异常,有没有办法阻止 try 块的执行?

use*_*637 0 python

如果执行异常,是否有办法阻止 try 块的其余部分执行?举例来说,我已经用完了ingredient 1,一旦执行该异常,如何防止 try 块的其余部分执行?

try:
    #add ingredient 1
    #add ingredient 2
    #add ingredient 3
except MissingIngredient:
    print 'you are missing ingredients'
Run Code Online (Sandbox Code Playgroud)

Nor*_*bők 5

它会自动发生:

class MissingIngredient(Exception):
    pass

def add_ingredient(name):
    print 'add_ingredient',name
    raise MissingIngredient

try:
    add_ingredient(1)
    add_ingredient(2)
    add_ingredient(3)
except MissingIngredient:
    print 'you are missing ingredients'
Run Code Online (Sandbox Code Playgroud)

如果 try 块的表达式之一引发异常,则不会执行 try 块的其余部分。它将打印:

add_ingredient 1
you are missing ingredients
Run Code Online (Sandbox Code Playgroud)