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

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

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;

    }

}

你可能感兴趣的:(异常)