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