处理 ASP.NET MVC 控制器构造函数中发生的异常

2024-03-24

处理控制器构造函数内发生的异常的最佳方法是什么?

我能想到的就是使用 Application_OnError() 或在我的 ControllerFactory 中放置一个 try/catch 。

这些解决方案似乎都不理想。 Application_OnError 太宽泛了 - 我的网站中有一些非 MVC 内容,它们有自己的错误处理。

使用 try/catch 块似乎有点老套。

如果我提供不同的内容类型 -html/text/json/rss...我希望能够在操作方法中处理异常,而不必编写各种条件来确定哪种错误消息服务。

我在这里遗漏了什么吗?还是有其他人处理过这个问题?


如果您的系统中发生异常ControllerFactory当首先创建控制器时,您无法在操作方法中处理异常。

就我个人而言,我只会执行 try/catch,实例化一些错误处理控制器,然后通过它路由请求。

一个更好的问题是 - 你的控制器如此依赖于什么而没有得到满足,以至于在构造它们时必须抛出异常?表面上,简单地创建控制器不应该成为异常的巨大来源。如果是的话,也许您可​​以考虑在操作方法(而不是构造函数)中延迟实例化依赖项,并实现ErrorHandlingController方法 http://blog.ploeh.dk/2009/12/01/GlobalErrorHandlingInASPNETMVC.aspx。这会将异常“向下”推送到控制器本身,因此您可以采取更加以控制器为中心的方法来处理它们。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

处理 ASP.NET MVC 控制器构造函数中发生的异常 的相关文章

随机推荐