我在这里看到了一个类似的问题,但仍有一些我不明白的地方。据我所知,当您使用try-catch
块时,如果抛出异常,则将立即执行 catch 块,并且不会执行catch
同一代码块中子句之后的任何代码。因此,如果我做对了,如果我们有:
try
{
// do something
// throw an exception for some reason
}
catch (Exceptiox ex)
{
// do something when there is and exception thrown
}
// some code that will never be runned if and exception was thrown above
我不能 100% 确定catch
停止在其范围之外进一步执行,但这是我的问题之一,所以如果我错了,请纠正我。
那么,如果您根本不需要返回任何值,那么return
在块中使用有什么意义呢?catch
我在我正在处理的继承代码的一些方法中看到了这一点。例如:
public void DeleteImage(AppConfig imageInfo, string imageName)
{
string imgPath = imageInfo.ConfigValue.ToString();
try
{
File.Delete(imgPath + "\\" + imageName);
}
catch (Exception ex)
{
logger.Error(ex.ToString());
return;
}
}
除了记录错误,这里不需要做任何事情。为什么然后使用return
. 这是一个错误吗?return
如果您没有明确说明,该方法不会完成吗?catch
如果子句之后有更多代码,如果return
不存在并且catch
仅用于记录错误,它会被执行吗?