gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 08:36:34 25 4
gpt4 key购买 nike

我有一个 WPF gui,它有一个名为 Manager 的类的实例,它基本上管理某些通信和数据功能。

我的管理器中有 try/catch block ,但我想知道将其传达给 GUI 的最佳实践。

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

自己退货就够了ErrorType enum识别错误:

enum ErrorType
{
NoError, TimeOut, DBCorrupt
}

等等。或者这很简单?应该补充的是,对 Manager 的调用将使用 BackgroundWorker 进行线程化...

最佳答案

不要返回错误代码。 C# 比这更好。很快你就会有一个需要返回一些东西的方法:public Person GetPerson(int personID){}并且您不想开始使用 out参数。如果 GetPerson 不能“获取”一个“Person”,那就是异常(exception),因此你应该抛出一个异常。

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

如果您使用的是 BackgroundWorker,那么您可能需要在 RunWorkerCompleted 事件中检查异常,而不是使用“catch” block 。 This documentation explains how.

关于wpf - 如何处理低级错误并将其传达给 wpf gui?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1205482/

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