在工作中经常遇到用异常去控制程序流程,下面是一个普遍的例子:
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; } }
重构第六天:用条件语句替换异常
时间: 2024-11-06 11:26:11