繁体   English   中英

如何处理低级错误并将其传达给wpf gui?

[英]How can I handle and communicate low level errors to wpf gui?

我有一个WPF gui,它具有一个称为Manager的类的实例,该类实际上管理某些通信和数据功能。

我的Manager中有try / catch块,但是我想知道将其传达给GUI的最佳实践。

例如,单击按钮会生成一个onClick事件,在该代码中,我将调用Manager.DoProcessing() 问题是,我怎么知道DoProcessing是否DoProcessing炸毁了? 我不想用另一个try catch包围函数调用...

返回识别错误的我自己的ErrorType enum是否足够:

enum ErrorType
{
NoError, TimeOut, DBCorrupt
}

等等。还是这很简单? 应该添加的是,对Manager的调用将使用BackgroundWorker进行线程处理...

不要返回错误代码。 C#比这更好。 很快,您将拥有一种需要返回某些内容的方法: public Person GetPerson(int personID){}并且您不必开始使用out参数。 如果GetPerson无法“获取”“ Person”,那是例外 ,因此您应该抛出异常。

您的Manager类是ViewModel吗? 如果没有,则将其包装成一个。 您的视图模型应该catch异常(无论发生在哪个线程上),并负责将其呈现给视图。 一种选择是创建一个ErrorMessages的ObservableCollection(或字符串),但我将编写一个ErrorMessage类,其中包含消息,严重性,发生时间等。 然后,您的XAML可以直接绑定到该文件。 每当catch块向集合中添加ErrorMessage时,视图都会自动更新。

如果使用的是BackgroundWorker,则可能需要检查RunWorkerCompleted事件中的异常,而不是使用“ catch”块。 本文档说明了如何。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM