在什么情况下可以使用异常处理来处理业务逻辑?
- 论坛
- 在什么情况下可以使用异常处理来处理业务逻辑?
24 浏览
在什么情况下可以使用异常处理来处理业务逻辑?
我认为一般来说,在Java中(也许在任何具有异常处理的语言中),应该尽量避免使用异常处理来处理业务逻辑。通常情况下,如果预期某种情况应该发生,应该直接检查并处理,而不是依靠异常处理来进行检查。例如,以下做法被认为不好:
try{ _map.put(myKey, myValue); } catch(NullPointerException e){ _map = new HashMap(); }
相反,应该更像这样实现延迟初始化:
if(_map == null){ _map = new HashMap(); } _map.put(myKey, myValue);
当然,可能存在比简单的延迟初始化更复杂的逻辑。鉴于通常不赞成使用这种方式...那么,在什么情况下,如果有的话,依赖异常发生来实现某些业务逻辑是一个好主意?可以说,任何感到必须使用这种方法的情况实际上都凸显了所使用API的弱点。