在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的单一责任的第一条规则。
我应该如何设置类,使我的其他处理程序类可以捕获异常并采取所需的操作?我首先想到的是事件处理程序,但是有没有更好的技术呢?
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{}环绕这个方法的调用,你可以处理异常(即显示一个消息框)。