论坛首页 Java企业应用论坛

面试题:用Exception异常还是if判断

浏览 34402 次
精华帖 (0) :: 良好帖 (6) :: 新手帖 (13) :: 隐藏帖 (1)
作者 正文
   发表时间:2010-08-24   最后修改:2010-08-24
一个方法的参数,C里面好像是一堆的if else判断参数是否合法,不合法就返回一个没有实际意义的值

但在java里面有异常机制,当参数不合法的时候,究竟是if else 一样判断后返回一个值

还是直接来个Exception ?

如果是 if else 的话,有什么好处 ?

如果是 exception 的话,又有什么好处 ?

或者是根据不同情况来定 ?

一次面试的题目,至今无解,求真相
   发表时间:2010-08-24  
看情况吧,如果能在方法里面处理不影响方法功能的话使用if else处理,如果参数错误导致方法不能正常工作,那么就得抛异常了,Java提供了java.lang.IllegalArgumentException,可以直接new一个抛出去,这是一个RuntimeException,不需要try..catch
0 请登录后投票
   发表时间:2010-08-24   最后修改:2010-08-24
showr 写道
一个方法的参数,C里面好像是一堆的if else判断参数是否合法,不合法就返回一个没有实际意义的值

但在java里面有异常机制,当参数不合法的时候,究竟是if else 一样判断后返回一个值

还是直接来个Exception ?

如果是 if else 的话,有什么好处 ?

如果是 exception 的话,又有什么好处 ?

或者是根据不同情况来定 ?

一次面试的题目,至今无解,求真相

使用断言.
0 请登录后投票
   发表时间:2010-08-24  
抛出异常的爱 写道
showr 写道
一个方法的参数,C里面好像是一堆的if else判断参数是否合法,不合法就返回一个没有实际意义的值

但在java里面有异常机制,当参数不合法的时候,究竟是if else 一样判断后返回一个值

还是直接来个Exception ?

如果是 if else 的话,有什么好处 ?

如果是 exception 的话,又有什么好处 ?

或者是根据不同情况来定 ?

一次面试的题目,至今无解,求真相

使用断言.

断言,不是也以抛异常做为结束吗?求讲解。
0 请登录后投票
   发表时间:2010-08-24  
if else    面向过程
exception  面向对象
0 请登录后投票
   发表时间:2010-08-24  
这就是个编程风格问题
java风格就是throw IllegalArgumentException();
1 请登录后投票
   发表时间:2010-08-24  
呵呵,个人喜欢用if else 这样可以给用户更好的提示,throw难道要抛出异常给用户看
0 请登录后投票
   发表时间:2010-08-24  
mathfox 写道
抛出异常的爱 写道
showr 写道
一个方法的参数,C里面好像是一堆的if else判断参数是否合法,不合法就返回一个没有实际意义的值

但在java里面有异常机制,当参数不合法的时候,究竟是if else 一样判断后返回一个值

还是直接来个Exception ?

如果是 if else 的话,有什么好处 ?

如果是 exception 的话,又有什么好处 ?

或者是根据不同情况来定 ?

一次面试的题目,至今无解,求真相

使用断言.

断言,不是也以抛异常做为结束吗?求讲解。



断言是错误,不是java.lang.Exception,它是java.lang.AssertionError。

很多框架使用的自定义断言,很少使用JVM断言机制。
1 请登录后投票
   发表时间:2010-08-24  
wpfwupengfeiwpf 写道
呵呵,个人喜欢用if else 这样可以给用户更好的提示,throw难道要抛出异常给用户看



if else不好的地方在不能通过OO的继承和多态来实现功能。
0 请登录后投票
   发表时间:2010-08-24  
hxbot 写道
if else    面向过程
exception  面向对象



很对~~正解,补充一句,exception性能劣于if else  ,纯面向对象设计的话很多exception设计,但性能很差
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics