在工作中经常遇到用异常去控制程序流程,下面是一个普遍的例子:
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;
}
}
重构第六天:用条件语句替换异常,布布扣,bubuko.com
原文地址:http://www.cnblogs.com/peteryan/p/3845064.html