zoukankan      html  css  js  c++  java
  • 重构第18天 用条件语句来代替异常(Replace exception with conditional)

    理解本文中的“使用条件判断代替异常”是指把没有必要使用异常做判断的条件尽量改为条件判断。

    详解

    重构前代码:

     1  public class Microwave
     2     {
     3         private IMicrowaveMotor Motor { get; set; }
     4 
     5         public bool Start(object food)
     6         {
     7             bool foodCooked = false;
     8             try
     9             {
    10                 Motor.Cook(food);
    11                 foodCooked = true;
    12             }
    13             catch (InUseException)
    14             {
    15                 foodcooked = false;
    16             }
    17 
    18             return foodCooked;
    19         }
    20     }

    重构后的代码如下所示,try   catch 做条件判断的语句改成了if   return 的方式,这样在很多程度上统一了代码的书写,同时也提高了性能。

     1 public class Microwave
     2     {
     3         private IMicrowaveMotor Motor { get; set; }
     4 
     5         public bool Start(object food)
     6         {
     7             if (Motor.IsInUse)
     8                 return false;
     9 
    10             Motor.Cook(food);
    11 
    12             return true;
    13         }
    14     }

    这个重构在项目代码中也经常用到,因为对于一部分程序员,是很难把握什么时候用try   catch ,什么地方该用try   catch 。记得之前大家还专门讨论过这些,比如如何用好以及在大中型项目中应该把它放在哪一个组件中等。

  • 相关阅读:
    spoj 104 Highways (最小生成树计数)
    bzoj 1912 巡逻(树直径)
    BZOJ 3534 重建
    BZOJ 3143 游走(高斯消元)
    在Windows下编译PyCaffe
    caffe的Matlab接口的使用方法
    NewRelic性能监控之APM
    MariaDB-10.x二进制包安装
    mongoDB-3.x Balancer Management
    mongoDB-3.x集群管理
  • 原文地址:https://www.cnblogs.com/yplong/p/5373025.html
Copyright © 2011-2022 走看看