首页 新闻 会员 周边 捐助

关于方法的返回值选取

0
悬赏园豆:10 [已解决问题] 解决于 2015-06-16 17:24

自己在写一个c#的redis帮助类   用list作为队列操作     

 public long EnQueue<T>(string queueId, T entity)
        {
            using (var redis = new RedisClient(host, port))
            {
                string json = JsonSerializer.SerializeToString<T>(entity);
                byte[] data = StringExtensions.ToUtf8Bytes(json);
                return redis.LPush(queueId, data);
            }
        }

对于上面的入队方法, 用bool类型还是直接如上面的返回当前队列的长度?     

还有帮助类这边是否需要直接捕获异常?    

 

  求此类问题的思路...

mushishi的主页 mushishi | 菜鸟二级 | 园豆:430
提问于:2015-06-15 23:43
< >
分享
最佳答案
0

如果调用方不关心队列长度,就用bool。

如果需要将异常写入日志,就需要捕获。

如果针对异常有额外的处理,比如异常时返回false,就需要捕获。

如果针对下面的代码,想在异常时抛出自定义异常,就需要捕获。

string json = JsonSerializer.SerializeToString<T>(entity);
byte[] data = StringExtensions.ToUtf8Bytes(json);
收获园豆:5
dudu | 高人七级 |园豆:29568 | 2015-06-16 10:56

enen  

mushishi | 园豆:430 (菜鸟二级) | 2015-06-16 17:23
其他回答(2)
0

返回值,可以直接用LPush方法的结果,可以做下参数检查,其他的不需要异常处理。

收获园豆:3
幻天芒 | 园豆:37207 (高人七级) | 2015-06-16 08:52

是不是工具方法 不用去捕获异常?  

支持(0) 反对(0) mushishi | 园豆:430 (菜鸟二级) | 2015-06-16 09:43

@mushishi: 捕获异常只在你可以处理的时候才捕获,否则应该将其交给调用方来处理。

比如:

int count = 3;

while(true)

{

try

{

using (var redis = new RedisClient(host, port)){}

}

catch(TimeoutException e){ if(count-- == 0) throw e;}

}

支持(0) 反对(0) Launcher | 园豆:45050 (高人七级) | 2015-06-16 11:23

@mushishi: 未知的异常不管,因为你不知道该怎么管。

支持(0) 反对(0) 幻天芒 | 园豆:37207 (高人七级) | 2015-06-16 11:53

@幻天芒:  嗯 未知的异常还是在具体调用场景里边做相应的处理来的好

支持(0) 反对(0) mushishi | 园豆:430 (菜鸟二级) | 2015-06-16 17:20

@mushishi: 正是如此~

支持(0) 反对(0) 幻天芒 | 园豆:37207 (高人七级) | 2015-06-17 09:45
0
public long EnQueue<T>(string queueId, T entity)
{
   using (var redis = new RedisClient(host, port))
   {
       try
       {
           string json = JsonSerializer.SerializeToString<T>(entity);
           byte[] data = StringExtensions.ToUtf8Bytes(json);
        }catch(Exception ex)
        {
            writeLog(ex);
        }
        finally
        {
            return redis.LPush(queueId, data);
        }
    }
}      
收获园豆:2
天外归云 | 园豆:368 (菜鸟二级) | 2015-06-16 09:53
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册