写一个除了抛出异常之外什么都不做的方法是不好的做法?

zaq*_*zaq 5 c# asp.net-mvc exception asp.net-mvc-3

标题几乎说了但是这里有一些背景:

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

目前,我有一个实现OnException事件的基本控制器.在这里,处理任何未处理的异常,并将错误页面返回给用户,并显示异常消息.

我执行上述检查的最简单方法是编写一个检查每个路径是否存在的方法,如果其中任何一个路径失败,我只需抛出(并记录)异常.然后,基本控制器处理此异常,并将相应的消息返回给用户.

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

Rom*_*kov 8

没有什么不妥.

.NET框架也是这样做的:例如,CancellationToken有一个方法ThrowIfCancellationRequested除了抛出或不抛出之外什么都不做,这取决于某些条件.

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