MVC - 抛出异常但给出消息说我必须从List返回一个值

时间:2011-03-19 18:43:05

标签: c#

这与我的其他帖子有关。我试图添加一些异常逻辑,所以我编写了以下代码:

public IEnumerable<DrillFormat> List(string partitionKey)
        {
            try {
                _drillServiceContext.MergeOption = MergeOption.NoTracking;  // set when you will not be updating this entity
                var results = from c in
_drillServiceContext.drillTable
                          where c.PartitionKey == partitionKey
                          select c;
                var query = results.AsTableServiceQuery();
                var queryResults = query.Execute();
                return queryResults;
            } catch (Exception e) {
                System.Diagnostics.Trace.TraceInformation(e.Message
+ Environment.NewLine + e.StackTrace);
                throw new Exception("Error while accessing the data store.", e);
            }

        }

但是现在我收到一条消息,说“并非所有代码路径都返回一个值”。这是否意味着即使我抛出异常,我也必须返回一个值?

1 个答案:

答案 0 :(得分:1)

如果没有抛出异常,则此方法永远不会返回值。

我通常在这样的方法中添加return nullnew List<DrillFormat>()。取决于调用代码所期望的内容以及是否要处理调用链的null。