私のカスタムOrchardモジュールでは、ログイン中にカスタムFtpExceptionをスローするコントローラーアクション内にいくつかのftpクライアントコードを記述しました。ログインコードをtry-catchでラップし、エラーが発生した場合に通知メッセージをビューに送り返しています。問題は、エラーがまだ発生していて、標準の「おっと。何か問題が発生しました...ごめんなさい」オーチャードエラーメッセージが表示されていることです。これが私がラップしているコードです:
try
{
ftpClient.Login();
ftpClient.Upload(fileName);
}
catch (FtpException ex)
{
services.Notifier.Error(T("There was an error sending the file - {0}.", ex.Message));
return RedirectToAction("Edit", "Project");
}
finally
{
ftpClient.Close();
}
services.Notifier.Information(T("File uploaded successfully."));
return RedirectToAction("Edit", "Project");
オーチャードログを見ると、内からFTP例外がスローされていることがわかりますftpClient.Login()
。catchブロックのコードが実行されているので、例外が処理されていることがわかります。問題は、未処理の例外動作がまだOrchardによって表示されていることです。RedirectToActionが起動するように、例外がバブリングするのを防ぐにはどうすればよいですか?