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

catching exceptions while following SOLID principles in winrt

 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;
    }

这是我的 class 中唯一从本地存储中检索文件的方法。我想通知用户任何异常。如果我尝试在 catch 语句中创建一个消息框,那将打破 solid 的第一条单一责任规则。

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

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;
    }

不是在这里捕获异常,而是简单地将它扔给调用它的控制器。确保有一个 try{}catch{} 围绕对此方法的调用,您可以在那里处理异常(即显示消息框)。