gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 21:57:33 24 4
gpt4 key购买 nike

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

与其在此处捕获异常,不如将其抛给调用它的 Controller 。确保有一个 try{}catch{} 围绕对此方法的调用,您可以在那里处理异常(即显示消息框)。

关于c# - 在 winrt 中遵循 SOLID 原则时捕获异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30649865/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com