C# “它对”意味着什么;通过捕获非特定异常来避免处理错误;?

C# “它对”意味着什么;通过捕获非特定异常来避免处理错误;?,c#,exception,exception-handling,C#,Exception,Exception Handling,我是C#的新手, 当我遇到以下语句时,我正在学习异常和异常处理: 通过捕获应用程序代码中的非特定异常(如System.Exception、System.SystemException等),避免处理错误。有些情况下,处理应用程序中的错误是可以接受的,但这种情况很少 我就是不明白。你能解释一下这是什么意思吗? 我认为处理所有异常都是一个很好的实践,因为它使程序在不可预测的情况下更加稳定 系统。异常是.NET中所有异常继承自的基类。作者的意思是,通常,当您使用catch(Exception e)时,您

我是C#的新手,
当我遇到以下语句时,我正在学习异常和异常处理:

通过捕获应用程序代码中的非特定异常(如System.Exception、System.SystemException等),避免处理错误。有些情况下,处理应用程序中的错误是可以接受的,但这种情况很少

我就是不明白。你能解释一下这是什么意思吗? 我认为处理所有异常都是一个很好的实践,因为它使程序在不可预测的情况下更加稳定


系统。异常
是.NET中所有异常继承自的基类。作者的意思是,通常,当您使用
catch(Exception e)
时,您正在执行一种通用的catch all exceptions类型的catch,而不是处理实际的特定异常。例如,如果您从可能引发
WebException
的方法执行HTTP请求,那么您应该捕获
WebException
并处理该错误

作者的意思是,通常当您捕获特定异常时,您实际上希望处理来自该请求的错误。例如,这可能意味着在处理错误的网络连接时捕获
WebException
,并实施重试机制

这意味着:

public void DoRequest()
{
    try
    {
        var address = File.ReadAllLines(@"C:\text.txt");
        var client = new WebClient();
        var result = client.DownloadString(address);
    }
    catch (WebException e)
    {
        // Handle the specific case
    }
    catch (IOException ie)
    {
    }
}
而不是:

public void DoRequest()
{
    try
    {
        var address = File.ReadAllLines(@"C:\text.txt");
        var client = new WebClient();
        var result = client.DownloadString(address);
    }
    catch (Exception e)
    {
        // Do something
    }
}

System.Exception
是.NET中所有异常继承自的基类。作者的意思是,通常,当您使用
catch(Exception e)
时,您正在执行一种通用的catch all exceptions类型的catch,而不是处理实际的特定异常。例如,如果您从可能引发
WebException
的方法执行HTTP请求,那么您应该捕获
WebException
并处理该错误

作者的意思是,通常当您捕获特定异常时,您实际上希望处理来自该请求的错误。例如,这可能意味着在处理错误的网络连接时捕获
WebException
,并实施重试机制

这意味着:

public void DoRequest()
{
    try
    {
        var address = File.ReadAllLines(@"C:\text.txt");
        var client = new WebClient();
        var result = client.DownloadString(address);
    }
    catch (WebException e)
    {
        // Handle the specific case
    }
    catch (IOException ie)
    {
    }
}
而不是:

public void DoRequest()
{
    try
    {
        var address = File.ReadAllLines(@"C:\text.txt");
        var client = new WebClient();
        var result = client.DownloadString(address);
    }
    catch (Exception e)
    {
        // Do something
    }
}

System.Exception
是.NET中所有异常继承自的基类。作者的意思是,通常,当您使用
catch(Exception e)
时,您正在执行一种通用的catch all exceptions类型的catch,而不是处理实际的特定异常。例如,如果您从可能引发
WebException
的方法执行HTTP请求,那么您应该捕获
WebException
并处理该错误

作者的意思是,通常当您捕获特定异常时,您实际上希望处理来自该请求的错误。例如,这可能意味着在处理错误的网络连接时捕获
WebException
,并实施重试机制

这意味着:

public void DoRequest()
{
    try
    {
        var address = File.ReadAllLines(@"C:\text.txt");
        var client = new WebClient();
        var result = client.DownloadString(address);
    }
    catch (WebException e)
    {
        // Handle the specific case
    }
    catch (IOException ie)
    {
    }
}
而不是:

public void DoRequest()
{
    try
    {
        var address = File.ReadAllLines(@"C:\text.txt");
        var client = new WebClient();
        var result = client.DownloadString(address);
    }
    catch (Exception e)
    {
        // Do something
    }
}

System.Exception
是.NET中所有异常继承自的基类。作者的意思是,通常,当您使用
catch(Exception e)
时,您正在执行一种通用的catch all exceptions类型的catch,而不是处理实际的特定异常。例如,如果您从可能引发
WebException
的方法执行HTTP请求,那么您应该捕获
WebException
并处理该错误

作者的意思是,通常当您捕获特定异常时,您实际上希望处理来自该请求的错误。例如,这可能意味着在处理错误的网络连接时捕获
WebException
,并实施重试机制

这意味着:

public void DoRequest()
{
    try
    {
        var address = File.ReadAllLines(@"C:\text.txt");
        var client = new WebClient();
        var result = client.DownloadString(address);
    }
    catch (WebException e)
    {
        // Handle the specific case
    }
    catch (IOException ie)
    {
    }
}
而不是:

public void DoRequest()
{
    try
    {
        var address = File.ReadAllLines(@"C:\text.txt");
        var client = new WebClient();
        var result = client.DownloadString(address);
    }
    catch (Exception e)
    {
        // Do something
    }
}

谢谢我以前从来没这么理解过。谢谢!我以前从来没这么理解过。谢谢!我以前从来没这么理解过。谢谢!我以前从来没这么理解过。