【发布时间】:2013-05-16 07:31:11
【问题描述】:
我正在创建一个 3 层应用程序,但在处理错误处理时遇到了问题。我不知道是否应该抛出异常或调用方法将问题传达给其他层。
这是一个简单的例子,我有:
- 一个FileChooserFrame(表示层),允许用户在列表中选择一个文件。
- 一个DataHandler(应用层),它对文件的路径做一些事情,并在演示层和数据层之间建立链接。
- 解析文件并从中获取数据的FileParser(数据层)。
现在假设文件必须遵循特殊结构,如果不是,我想显示一个 MessageBox。
我无法知道用户在解析之前是否选择了好的文件。
我的问题是,当我看到文件不符合结构时我该怎么办?
我想到了两件事:
1 - 停止当前操作并调用DataHandler(例如NotifyWrongFileErr())中的一个方法,该方法将要求框架显示消息框。
2 - 抛出我在FileChooserFrame 中捕获的自定义异常,它将显示弹出窗口。
这两种情况各有利弊,所以我无法在它们之间做出选择。最合适的做法是什么?
PS:在第 2 种情况下,我在哪里编写 Exception 类?在专用于应用程序异常的文件中,还是在抛出异常的类旁边?
【问题讨论】:
标签: c# oop error-handling 3-tier