日期:2014-05-17  浏览次数:20783 次

SSH框架中关于异常处理的问题,急。。。
到底是在service层用catch处理掉还是在Action控制层处理,分析:好多人说向上抛到Action处理,我写项目的时候发现这样不太好,这样会造成Action类很庞大,可读性也较差,而service层调用Dao层的时候基本上没什么多余代码,认为似乎写在service层好一些,不知道那么多人说抛到Action处理到底有什么好处,明明会使可读性变差且又使service层又过于简单,希望高人分析一下,到底是service里处理还是Action里处理,哪种好,好在哪? 

------解决方案--------------------
引用:
但是我不明白为什么很多人都说抛到上面一层去解决,我是个菜鸟,想请高手回答一下,到底在哪层好,好在哪里?

我也觉得service是最简单的一层。 我也有看过异常再service里处理的啊。 不同地方处理的不一样吧。 个人是这么认为的。 ╮(╯▽╰)╭
------解决方案--------------------
我自己对向上抛异常的理解是,后面的调用者调用到该层后,对异常的处理有可能是不一样的,所以在底层的,就不要已经把异常给进行处理了,只管往外抛就是了。至于要怎样处理异常,怎样拿捏,就是由后面的调用模块决定了。以前听课的时候,有点模糊,也不是很懂,但后来慢慢做多一些小项目就开始有些清楚,还是要有亲自实践过,碰到才会更清楚。也有可能说得不是很对,现在也还是学生,还在学习中,望高手指正。
------解决方案--------------------
通常是在出现异常的时候就要进行捕获和处理,如果处理不了,就进行抛出,让其它层去进行处理。
------解决方案--------------------
我同意楼主的观点,我也是一个大二的学生。我现在做的ssh项目都是在service层去catch异常。我认为这样Action就会变得清晰。还有我不建议你用dao层。你写个Basic接口和对应的实现类。这样可以达到项目的解耦目的。