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

本文关键字:原则 捕获异常 SOLID winrt | 更新日期: 2023-09-27 17:53:30

 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语句中做一个消息框,它将会破坏solid的单一责任的第一条规则。

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

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

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{}环绕这个方法的调用,你可以处理异常(即显示一个消息框)。