精华帖 (0) :: 良好帖 (6) :: 新手帖 (13) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2010-08-24
最后修改:2010-08-24
但在java里面有异常机制,当参数不合法的时候,究竟是if else 一样判断后返回一个值 还是直接来个Exception ? 如果是 if else 的话,有什么好处 ? 如果是 exception 的话,又有什么好处 ? 或者是根据不同情况来定 ? 一次面试的题目,至今无解,求真相 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-08-24
看情况吧,如果能在方法里面处理不影响方法功能的话使用if else处理,如果参数错误导致方法不能正常工作,那么就得抛异常了,Java提供了java.lang.IllegalArgumentException,可以直接new一个抛出去,这是一个RuntimeException,不需要try..catch
|
|
返回顶楼 | |
发表时间:2010-08-24
最后修改:2010-08-24
showr 写道 一个方法的参数,C里面好像是一堆的if else判断参数是否合法,不合法就返回一个没有实际意义的值
但在java里面有异常机制,当参数不合法的时候,究竟是if else 一样判断后返回一个值 还是直接来个Exception ? 如果是 if else 的话,有什么好处 ? 如果是 exception 的话,又有什么好处 ? 或者是根据不同情况来定 ? 一次面试的题目,至今无解,求真相 使用断言. |
|
返回顶楼 | |
发表时间:2010-08-24
抛出异常的爱 写道 showr 写道 一个方法的参数,C里面好像是一堆的if else判断参数是否合法,不合法就返回一个没有实际意义的值
但在java里面有异常机制,当参数不合法的时候,究竟是if else 一样判断后返回一个值 还是直接来个Exception ? 如果是 if else 的话,有什么好处 ? 如果是 exception 的话,又有什么好处 ? 或者是根据不同情况来定 ? 一次面试的题目,至今无解,求真相 使用断言. 断言,不是也以抛异常做为结束吗?求讲解。 |
|
返回顶楼 | |
发表时间:2010-08-24
if else 面向过程
exception 面向对象 |
|
返回顶楼 | |
发表时间:2010-08-24
这就是个编程风格问题
java风格就是throw IllegalArgumentException(); |
|
返回顶楼 | |
发表时间:2010-08-24
呵呵,个人喜欢用if else 这样可以给用户更好的提示,throw难道要抛出异常给用户看
|
|
返回顶楼 | |
发表时间:2010-08-24
mathfox 写道 抛出异常的爱 写道 showr 写道 一个方法的参数,C里面好像是一堆的if else判断参数是否合法,不合法就返回一个没有实际意义的值
但在java里面有异常机制,当参数不合法的时候,究竟是if else 一样判断后返回一个值 还是直接来个Exception ? 如果是 if else 的话,有什么好处 ? 如果是 exception 的话,又有什么好处 ? 或者是根据不同情况来定 ? 一次面试的题目,至今无解,求真相 使用断言. 断言,不是也以抛异常做为结束吗?求讲解。 断言是错误,不是java.lang.Exception,它是java.lang.AssertionError。 很多框架使用的自定义断言,很少使用JVM断言机制。 |
|
返回顶楼 | |
发表时间:2010-08-24
wpfwupengfeiwpf 写道 呵呵,个人喜欢用if else 这样可以给用户更好的提示,throw难道要抛出异常给用户看
if else不好的地方在不能通过OO的继承和多态来实现功能。 |
|
返回顶楼 | |
发表时间:2010-08-24
hxbot 写道 if else 面向过程
exception 面向对象 很对~~正解,补充一句,exception性能劣于if else ,纯面向对象设计的话很多exception设计,但性能很差 |
|
返回顶楼 | |