我正在编写GUI应用程序,用于交换和同步公司的会计软件和电子商务系统(网上商店)之间的数据。
我想使用MVC(模型 - 视图 - 控制器)设计模式创建它。
我的部分应用程序是用会计软件覆盖电子商务库存余额的功能。
我有
当我对数据库进行排队时,我必须捕获异常(ClassNotFound和SQL)。
我应该在哪里创建try {} catch {}块?在视图中?或在控制器中?
我想提供一些带有错误消息的JOptionPane并完成一些应用程序状态。
答案 0 :(得分:3)
您仅提到了已检查的例外情况。
RuntimeException
中打包。答案 1 :(得分:2)
这是一个棘手的问题,将归结为您构建代码的方式。通常,如果可以,让模型以视图可以处理它的方式抛出异常。这会使您的模型与您的视图脱钩。
有时会(例如使用JTable或JLists)这种情况是不可能的。在这些情况下,如果可能,单独加载“模型数据”(处理任何错误),然后将其传递给控件(JTable / JList)模型。
但是,您可能会遇到一种情况,您会发现自己使用的是标准模型(例如表模型)并且您正在从单独的模型中读取数据(例如结果集等(仅示例)) - 因为性能得到改善或者什么都有)模型将被呈现为尝试处理异常的任务。
在这种情况下,我只能建议您为模型提供某种错误处理程序/侦听器,该错误处理程序/侦听器能够将错误报告回UI。如果可以,我们是一个界面,这将允许您在需要时解耦视图/模型。
只是一些想法