c# - 编写一个除了抛出异常什么都不做的方法是不好的做法吗?

标签 c# asp.net-mvc asp.net-mvc-3 exception

标题几乎说明了一切,但这里有一些背景:

我有一个 ASP.Net MVC 应用程序,我需要在其中检查文件路径列表是否存在。如果任何路径不存在,则返回错误。

目前,我有一个实现 OnException 事件的基本 Controller 。在这里,处理任何未处理的异常,并向用户返回一个错误页面和异常消息。

对我来说,进行上述检查的最简单方法是编写一个方法来检查每条路径是否存在,如果其中任何一条路径失败,我只需抛出(并记录)一个异常。然后由基本 Controller 处理此异常,并将适当的消息返回给用户。

我的问题是,这样做感觉像是不好的做法。我正在编写一个返回 void 的方法,它的唯一目的是在其中一条路径不存在的极少数情况下抛出异常,在大多数情况下它什么都不做。这是个坏主意吗?

最佳答案

这没有错。

.NET 框架也这样做:例如,CancellationToken 有一个方法 ThrowIfCancellationRequested它只根据某些条件抛出或不抛出。

另一个例子:DispatcherVerifyAccess方法,它检查调用者是否与应该访问控件的线程在同一个线程上,如果不是则抛出。

关于c# - 编写一个除了抛出异常什么都不做的方法是不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8736034/

相关文章:

c# - Process.Start() 从命令提示符窗口获取错误

c# - 用户报告具有锁定值的 WPF 控件;这怎么会发生?

c# - 在 Windows Phone 8.1(通用应用程序)中如何确定我连接的是 WiFi 还是移动网络?

asp.net - ASP.NET MVC 注定要取代 Webforms 吗?

jquery - 在 asp.net MVC3 EF4.1 中创建父级时创建动态子级列表

c# - 仅在 3.5 中从 List<T> 到 IEnumerable<T> 的 InvalidCastException

asp.net-mvc - 尝试获取 LogWriter 类型的实例时发生激活错误, key ""

asp.net-mvc - 用于依赖注入(inject)的 MVC Web API 和 Unity

c# - 自定义客户端消息

asp.net - Application_Error 被多次调用