上次的一篇文章问到为什么TreeViewer没有刷新,结果没有人回答。求人不求己。
自己解答一下这个问题吧,是因为领域对象出了错,所以TreeViewer没有刷新,因为在取得子节点的时候,出现了空针的情况,Dialog没有不关闭,也是因为在刷新节点的时候遇到了领域对象的空针,TreeViewer的刷新方法已经出现异常了,所以Dialog停止执行了。JFace对异常的处理好像就是这么简单,当遇到异常的时候,很少会抛出异常。
以后在写RCP的时候一定要注意异常的问题,不要因为没有看到异常信息,就认为没有异常了,RCP只是不知道应该不异常记录在哪里而已。
客户虐我千百遍,我待客户如初恋!