gpt4 book ai didi

asp.net-mvc-3 - 如何避免在 Controller 中使用 try ... catch?

转载 作者:行者123 更新时间:2023-12-04 22:35:08 25 4
gpt4 key购买 nike

我尝试在应用程序的较低层处理我的异常,因为它们可以被处理(记录它们)。但是,如果参数为 NULL 并且不应该在这种情况下我会抛出 ArgumentNullException 时,应该会导致应用程序崩溃。

如果您考虑调用服务层的 Controller 层。我想避免服务层抛出异常,因为我想在这里处理所有异常(日志记录),但我觉得在这种情况下这是不可能的(比如 NULL 情况)。

那么避免在 Controller 中使用 try...catch 的最佳方法是什么?或者我真的应该在 Controller 中使用 try...catch 吗?

最佳答案

我更喜欢在 Application_Error 中处理所有未处理的异常(不应该发生的事情)。方法。您可以在此处记录异常并根据其性质显示正确的错误 View 。

诸如自定义模型绑定(bind)器、验证器、操作过滤器之类的东西......也可以允许拦截一些异常情况,以避免到处都使用 try/catch 污染您的 Controller 。

对于我打算处理的所有事情,例如业务错误等...使用 try/catch 没有任何问题,甚至更好地使用 if语句并让服务层通知您某些操作是成功还是失败(TryXXX 模式。)

因此,与往常一样,您的问题的答案是:视情况而定。这取决于您的应用程序的组织方式,服务层的组织方式,可能发生的潜在错误,您希望明确处理的错误,......很多,很多,很多因素,当然还有很多,很多,许多可能的解决方案。

关于asp.net-mvc-3 - 如何避免在 Controller 中使用 try ... catch?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8727510/

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