当ASP.NET Core 2.2项目遇到特定异常时,如何重定向用户?

时间:2019-01-19 21:39:59

标签: c# asp.net asp.net-core asp.net-core-2.1 asp.net-core-2.2

我在ASP.NET Core 2.2框架的顶部有一个使用C#编写的项目。

当意外情况发生时,应用程序将引发自定义异常。

例如,如果应用程序在数据库中找不到默认设置,则会引发ApplicationIsNotSetupException()。此异常表示管理员未使用应有的安装过程来安装项目。因此,我想将它们定向到安装控制器。 (即SetupController.Install())

如果发现ApplicationIsNotSetupException(),如何将用户重定向到特定的路由?

2 个答案:

答案 0 :(得分:1)

有一种可能性:

// This should be before app.UseMvc
app.Use(async (context, next) =>
{
    try
    {
        await next();
    }
    catch (ApplicationIsNotSetupException)
    {
        context.Response.Redirect("/setup/install");
    }
});

我找到了这个Question,那里也有一些不错的答案。

答案 1 :(得分:-1)

您可以将代码插入try / catch:

try {...yourCode...}
catch (Exception ex)
{
if (ex is ApplicationIsNotSetupException)
..Do what ever you want..
else 
...
}

然后,每次它将捕获您想要的异常,它将进入if循环