黑马程序员技术交流社区

标题: 很火的面试题,求解 [打印本页]

作者: 337091921    时间: 2013-5-17 00:36
标题: 很火的面试题,求解
当参数不合法的时候,究竟是if else 判断后返回一个值还是直接来个Exception ?
    如果是 if else 的话,有什么好处 ?
    如果是 exception 的话,又有什么好处 ?
    或者是根据不同情况来定?
作者: 萌小子    时间: 2013-5-17 00:56
应该根据情况来定吧,就看程序需不需要抛出异常让上层处理了。如果需要那就用Exception,如果不需要就用if-else吧。我想是这样的!呵呵
作者: 刘正祥    时间: 2013-5-17 01:10
个人觉得 if  else更人性化一点,如果直接来个Exception的话显得机器化,
但是if  else  有主观判断的含义,并不一定能达到纠正程序的结果,
而程序追求的就是精确,所以Exception还是更好一点!
作者: Miss小强    时间: 2013-5-17 18:06
一般都是抛一个运行时异常IllegalArgumentException;
对方即可以选择不处理,当发生异常时,对方又知道;

作者: 曹睿翔    时间: 2013-5-19 07:53
如果问题已解决请再次编辑,改为以解决,方便大家看帖,没有就继续追问
作者: 张林敏    时间: 2013-5-31 10:56
如果这个错误考虑后期可能需要进行处理的话就用try
作者: 张超    时间: 2013-5-31 11:51
张林敏 发表于 2013-5-31 10:56
如果这个错误考虑后期可能需要进行处理的话就用try

没次看到你的头像都想笑,为了论坛的和谐,哥们求你换个图像把。
作者: 郭天龚    时间: 2013-5-31 19:05
其实这个问题每个人都有自己的答案。且每个人的答案都不相同。我个人的理解是这样的。
1 .if-else 方式的好处在于更贴近与逻辑思维,性能优于Exception。相对于Exception,其缺点是,不适合OOP,语义不明显,
不易于错误跟踪或错误提示较少,并且类型比较单一(比如利用C语言的原生类型)或者难以统一(比如C语言结构和宏定义)。

2. Exception方法的好处在于是业务实现代码和异常处理逻辑分离(代码相对清晰),try放业务实现代码,catch中处理异常情况。
在API设计中,可以设计Exception Handler来处理异常,使得层次分明。同时,更好的OOP的封装和多态性。缺点在于性能相对差。

要想详细了解你还是参考《疯狂java讲义》悟出自己的感想来。
作者: liuelxiwd    时间: 2013-5-31 19:33
我不是归人,是个过客,哈哈~~来做个广告http://bbs.itheima.com/thread-52835-1-1.html




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2