ここでも同様の質問がありましたが、まだわからないことがいくつかあります。ブロックを使用する場合、私が知る限り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が、これは私の質問の1つなので、間違っている場合は訂正してください。
では、値をまったく返す必要がない場合、ブロック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、エラーをログに記録するためだけに使用された場合、コードは実行されますか?