C# 区分超时和无数据情况
目前,在我的项目中,我面临一个问题,即在请求数据时,两种情况之间没有区别:C# 区分超时和无数据情况,c#,.net,couchbase,nosql,C#,.net,Couchbase,Nosql,目前,在我的项目中,我面临一个问题,即在请求数据时,两种情况之间没有区别: 数据库中实际没有数据时(对于请求的参数) 发生超时时(例如VPN连接丢失时) 在这两种情况下,方法: object Get(string key) Member of Enyim.Caching.IMemcachedClient 返回空值。我想在第二种情况下捕捉一个异常或其他情况来区分这两种情况 对于SocketPool,receiveTimeout设置为{00:00:01},但即使是过期的异常也不会像我预期的
object Get(string key)
Member of Enyim.Caching.IMemcachedClient
返回空值。我想在第二种情况下捕捉一个异常或其他情况来区分这两种情况
对于
SocketPool
,receiveTimeout
设置为{00:00:01}
,但即使是过期的异常也不会像我预期的那样引发。您能建议吗?有两个接口是MemcachedClient
实现的:IMemcachedClient
和IMemcachedResultsClient
。IMemcachedClient
上的每个基本方法在另一个接口上都有一个等价的executexx
方法,该方法返回更详细的结果
你可以做:
var result=client.ExecuteGet(key)代码>
结果将是一个IGetOperationResult
,您可以查询各种状态代码,或获取日志消息或其他信息
出于您指定的原因,我倾向于选择ExecuteXXX()
CAL而不是更简单的XXX()
CAL,尽管使用它们可能需要更多的代码 谢谢,这就是答案!我要补充的是,直到将CouchBase.dll更新为1.1版或更高版本,我才找到这些方法