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