精华帖 (0) :: 良好帖 (6) :: 新手帖 (13) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2010-08-24
hxbot 写道 if else 面向过程
exception 面向对象 两个都是面向过程 |
|
返回顶楼 | |
发表时间:2010-08-24
seele 写道 hxbot 写道 if else 面向过程
exception 面向对象 两个都是面向过程 Exception有类层次性,,不能说是面向过程。 |
|
返回顶楼 | |
发表时间:2010-08-24
显然用if判断,看看jdk自带的一些源码,经常可以看到下面这种写法
public void method(List list) throws Exception { if(list == null) { throw new Exception("..."); } } |
|
返回顶楼 | |
发表时间:2010-08-25
最后修改:2010-08-25
判断参数是否合法的话,推荐用exception。代码可读性好,真发生错误时也容易标明问题所在。
性能问题不用考虑,毕竟参数错误不是每次调用都发生的。 |
|
返回顶楼 | |
发表时间:2010-08-25
我觉得还是采用exception比较合适吧~~体现java思想
|
|
返回顶楼 | |
发表时间:2010-08-25
skydream 写道 判断参数是否合法的话,推荐用exception。代码可读性好,真发生错误时也容易标明问题所在。
性能问题不用考虑,毕竟参数错误不是每次调用都发生的。 同意,好多童鞋拿性能说事,人云亦云吧? |
|
返回顶楼 | |
发表时间:2010-08-25
java规范的定义是说异常不要参与控制流程,你不能把异常作为一种正常的控制流程作为程序的一部分,这样是不对的.
面试官正真要考的就是这个.. 没有哪个公司会用异常来处理参数验证.. |
|
返回顶楼 | |
发表时间:2010-08-25
如果您功力深 就if else
否则 用的Java的异常处理机制 |
|
返回顶楼 | |
发表时间:2010-08-25
先要明确异常是做什么的,异常是程序执行时的一些非正常的情况,如果有不正确的数据、逻辑等会抛出异常。
if else是逻辑判断,控制程序流程。 断言是预先决断应该是什么样的值,不应该是什么类型等明确的条件 从定义上不太好区分这些怎么去用,但可以从使用场景去考虑,下面的可能不十分准确,但大家可以参考一下: 异常:是程序员写给其他程序员的,比方说我写了一个方法,如果其他人使用我这个方法的时候有可能不按我想的路子使用,可能会引起我的方法产生不正常的处理,这时候我要使用异常,而且可以决定产生异常了是由我这个方法本身进行处理(catch语句中处理)还是交给调用者进行处理(直接把异常抛出) if else 就是我写的方法,要进行逻辑判断,就用它,没什么好说的吧。 断言可用处大了,是我在调用别人写的方法,或者我处理程序时对通过其他途径得到的数据(如调用别人方法的返回值(好象不建议用断言),通过参数传入的值)等进行假设它就是某值时使用的。是方便开发、调试提供的一个语法元素 |
|
返回顶楼 | |
发表时间:2010-08-25
1. 对可预见的运行时异常当进行捕捉并处理,比如空指针等。通常,对空指针的判断不是使用捕捉NullPointException的方式,而是在调用该对象之前使用判断语句进行直接判断,如:
//若不对list是否为null进行检查,则在其为null时会抛出空指针异常 if(null != list && 0 < list.size()){ for(int i = 0; i < list.size(); i++){ } } 2. 对于经常发生的可预计事件不要采用异常 3. 不要使用异常实现控制结构。 4. 通常的思想是只对错误采用异常处理:逻辑和编程错误,设置错误,被破坏的数据,资源耗尽,等等。 对于java的编码规范,有具体描述。我想考官希望得到的是这个方向的答案。 |
|
返回顶楼 | |