首页 > 代码库 > 重构第六天:用条件语句替换异常

重构第六天:用条件语句替换异常

在工作中经常遇到用异常去控制程序流程,下面是一个普遍的例子:

public class Microwave{    private IMicrowaveMotor Motor { get; set; }    public bool Start(object food)    {        bool foodCooked = false;        try        {            Motor.Cook(food);            foodCooked = true;        }        catch (InUseException)        {            foodcooked = false;        }        return foodCooked;    }}

异常应该是用来处理异常的行为的,对于上面的这种类型的代码,它们中的大部分都可以通过一个合适的条件语句进行替换。

public class Microwave{    private IMicrowaveMotor Motor { get; set; }    public bool Start(object food)    {        if (Motor.IsInUse)            return false;        Motor.Cook(food);        return true;    }}