c# - 我应该捕获多少个异常,正确的方法是什么?

标签 c# exception

我想获取我电脑的所有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/

相关文章:

c# - 如何在 C# 中使用 dlib 库

c# - 当我有外键和唯一约束时,如何在 LINQ to SQL 中插入?

Java 异常基本原理

Javascript 源丢失

MySQL事务难题

c# - DetailsView 中的下拉列表

c# - asp.net - 如何在 Sql 中使用变量?

c# - 检测正在使用哪个网络接口(interface)

C++类异常消息传递

c++ - 异常c++中的堆栈展开