gpt4 book ai didi

c# - ASP.NET MVC2 中正确的错误处理

转载 作者:太空狗 更新时间:2023-10-29 21:59:34 26 4
gpt4 key购买 nike

我的基本 Controller 中有一个覆盖 OnException(ExceptionContext filterContext) 以在任何错误期间捕获应用程序,然后记录它们。我在我的应用程序中遇到的问题是,由于某些错误,此特定方法被触发了四次。我将引导您完成一个场景:

假设我导航到: http://localhost:180/someController/someAction?someId=XX

而且我的代码中的对象处理很差。传入的 Id 是无效的,它检索了一些空对象,然后,由于我的错误对象处理,我尝试对空对象进行操作。我得到一个异常(exception)。

BaseController 的 OnException 在这里被触发。

那个 null 对象仍然返回到 View , View 试图将它绑定(bind)到某个东西,或者你有什么。

由于 View 中的错误,BaseController 的 OnException 在这里再次被触发。

基本上,只有一个错误对我来说很重要,但涓滴效应会导致更多错误触发,并向我的收件箱发送垃圾邮件:-/。

在 MVC2 中捕获错误并且不让这种情况发生在我身上的正确方法是什么?

最佳答案

我建议您继承 HandleError 属性并在其中滚动异常处理。在单个 Controller 上覆盖 OnException 意味着您要么在许多 Controller 中有大量异常处理代码,要么从基础 Controller 继承,由于 MVC 管道,这在任何一种情况下都不是真正必要的。

通过使用该属性,您应该在执行的每个操作中出现一次错误,并且一旦错误得到处理,它就不会再次触发。希望这会减少重复的异常消息。

我个人使用属性进行异常处理,因为它更干净、更可重用,并且在我的操作中消除了很多噪音。

关于c# - ASP.NET MVC2 中正确的错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3711604/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com