我想获取我电脑的所有IP地址。如果出现问题(异常),我只想返回空字符串。这是我使用的功能。 GetHostEntry
会抛出几个异常,GetHostName
也会抛出异常。我应该如何处理所有这些异常?我应该一个一个地捕获他们吗?那会使代码困惑。或者我应该简单地使用 catch (Exception e)
并且在 catch
block 内什么都不做?最好的处理方法是什么?
private string GetIpAddress()
{
var temp = new StringBuilder();
try {
var hostEntry = Dns.GetHostEntry(Dns.GetHostName());
var ips = from address in hostEntry.AddressList
where (address.AddressFamily == AddressFamily.InterNetwork)
select address;
foreach (IPAddress ip in ips) {
temp.Append(ip).Append(" ");
}
} catch (exception1) {
} catch (exception2) {
} .....
return temp.ToString();
}
最佳答案
当且仅当您可以对它做一些有用的事情时,您才应该捕获一个特定的异常。否则,让异常传播到可以用它做一些有用的事情的级别。
你应该有一个全局异常处理程序,优雅地管理否则未捕获的异常。
关于c# - 我应该捕获多少个异常,正确的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14842908/