[英]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.