我知道我可以使用类似 MessageBox.Show("some error")
的东西,但我说的是在我的代码中发生在某个较低级别的错误,没有业务抛出MessageBox 或任何其他 GUI 元素。
我正在构建一个 RSS 客户端,我有一个管理各种提要的类(比方说 FeedManager
),此时它只是一个列表的包装器。现在这个类调用另一个类来访问数据。因此,只要 GUI 中有人想要保存提要,GUI 只需调用 FeedManager.SaveFeeds()
即可处理提要并将它们保存到文件、数据库等。所以我尝试保存到文件并且发生了一些不好的事情(我编码的东西或异常)。所以现在我至少有 3 层深度,GUI
-> FeedManager
-> SomeDataAccessLayer
,我想向用户显示一条消息像“嘿,找不到那个文件”或“你没有权限写入那个位置”,等等......
我该怎么办?从数据访问层抛出一个 MessageBox
公然将该组件耦合到 GUI。让所有方法返回带有任何错误消息的字符串似乎也很愚蠢。
最佳答案
非 GUI 代码确实不应显示 MessageBox。
标准方法是抛出异常。
您的 GUI 应该使用 try/catch block 围绕对 SaveFiles()
的调用并采取适当的操作,例如显示消息框。
也许您忽略了一点,这正是异常的用途:通过(多个)方法调用传达错误。
关于c# - 如何显示来自非 GUI 相关类的 GUI 应用程序的错误消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6282238/