在winrt中遵循SOLID原则捕获异常

时间:2015-06-04 16:57:53

标签: c# windows-runtime

 public async Task<StorageFile> GetFile( string fileName )
    {
        // throw new NotImplementedException();
        var _folder = ApplicationData.Current.LocalFolder;
        try
        {
          var _file = await _folder.GetFileAsync(fileName);
            return _file;
        }
        catch (FileNotFoundException)
        {
            //notify user about the exception.
        }
        return null;
    }

这是我班级中唯一一种只从本地存储中检索文件的方法。我想通知用户任何异常。如果我尝试在catch语句中做一个消息框,那将会制定坚实的单一责任的第一条规则。

我应该如何设置我的其他处理程序类可以捕获异常并采取所需操作的类?我的第一个想法是事件处理程序,但有没有更好的技术?

1 个答案:

答案 0 :(得分:3)

public async Task<StorageFile> GetFile( string fileName )
    {
        // throw new NotImplementedException();
        var _folder = ApplicationData.Current.LocalFolder;
        try
        {
          var _file = await _folder.GetFileAsync(fileName);
            return _file;
        }
        catch
        {
           throw;
        }
        return null;
    }

而不是在这里捕获Exception,只需将其抛出到调用它的控制器即可。请确保在此方法的调用周围有一个try {} catch {},您可以在那里处理异常(即显示一个消息框)。