在我的自定义 Orchard 模块中,我在控制器操作中编写了一些 ftp 客户端代码,该操作在登录期间碰巧抛出了自定义 FtpException。我已将登录代码包装在 try-catch 中,如果出现错误,我会向视图发送通知消息。问题是错误仍在冒泡并显示标准的“糟糕。出了点问题......对不起”Orchard 错误消息。这是我要包装的代码:
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");
如果我查看 Orchard 日志,我会看到从ftpClient.Login()
. catch块中的代码被执行了,所以我知道异常已经被处理了。麻烦的是,Orchard 仍然显示未处理的异常行为。如何阻止异常冒泡,以便我的 RedirectToAction 会触发?