【发布时间】:2015-11-22 21:39:15
【问题描述】:
我有很多方法可以连接到互联网来获取一些东西。所以我需要处理可能发生的WebExceptions。但我想减少使用这些方法的代码中的 try catch 块,因为它看起来很难看。我现在正在做的是返回一个Tuple 和一个enum,我可以用它来查看方法是失败还是成功等。然后我使用switch 和case 块来处理它。例如:
Tuple<GetIpReturn, string> ip = await _user.GetIp();
GetIpLocksReturn returnValue = ip.Item1;
switch (returnValue) {
case GetIpLocksReturn.InternetError:
// WebException occured
break;
case GetIpLocksReturn.AuthError:
//
break;
case GetIpLocksReturn.Success:
// Use ip.Item2 (The ip string)
break;
}
但是,这些 break 语句看起来也很混乱。
通常错误案例的代码行数很少。有没有更好的方法来做到这一点? (也许使用委托?)
【问题讨论】:
标签: c# exception-handling switch-statement