以下讨论假定我们正在讨论的是如上例中所示的结构化代码:无论选择哪种选择,异常都将导致该方法在逻辑上停止执行中间的操作。
只要您打算做同样的事情,无论try
块中的哪个语句引发异常,那么使用单个try
/ 肯定会更好catch
。例如:
function createCar()
{
try {
install_engine();
install_brakes();
} catch (Exception $e) {
die("I Could not create a car");
}
}
如果可以并且打算以一种特定的原因来处理故障,则多重try
/ catch
块很有用。
function makeCocktail()
{
try {
pour_ingredients();
stir();
} catch (Exception $e) {
die("I Could not make you a cocktail");
}
try {
put_decorative_umbrella();
} catch (Exception $e) {
echo "We 're out of umbrellas, but the drink itself is fine"
}
}