【发布时间】:2011-04-15 20:40:02
【问题描述】:
这是一个伪代码:
try
{
TextReader tr = new StreamReader("filename");
try
{
string content = tr.ReadToEnd();
}
catch(Exception ex)
{ /*Show error message*/ }
finally
{ tr.Close();}
}
catch(Exception ex)
{ /*Show error message*/ }
好的,该代码是一本书的示例。我不明白为什么要使用嵌套的 try-catch 块。
如果
string content = tr.ReadToEnd();
出错了,那么外部 catch 应该捕获异常吧?所以我看不出在这条线上使用额外的 try-catch 有什么意义!
如果您在这里发现任何误解,如果您能指出,我会很高兴!
还有什么情况下可以合理使用嵌套的 try-catch?
【问题讨论】:
-
检测错误发生的时间,在
new StreamReader还是ReadToEnd? -
@0A0D - 这怎么可能是一个关于 PHP 的问题?
-
@Jeffrey:这是一个与语言无关的问题。
-
@0A0D - 不,不是。不同的语言以不同的方式处理异常。在您删除标签之前,这是一个 C# 问题。