真的需要判断参数是否为NULL么?
RT,大家说说写方法时是否判断参数为NULL的情况(这里指自己对NULL不处理,也是抛出异常的情况,而不是指处理掉参数NULL的情况),你为什么要判断,。
举例说明:
//不是这种
public static String getString(String s){
return s == null ? "" : s;
}
//是这种
public static String getString(String s){
if(s == null)
throw new NullpointException.....
return s.toString();
....
}
//以上代码只是举例说明(别一看就认为不需要用throw,因为toString()的时候必然会抛出NullpointException)思维不要被例子里的代码限制了,还有其他许多复杂的情况。
------解决方案--------------------
public void doSomthing(String str){
//查询数据库
//IO操作
//网络通信
str.trim();//这里抛异常了前面的工作不都白做了,还浪费资源
}
------解决方案--------------------public函数不检查参数,熊孩子什么都敢往里传的
------解决方案--------------------不是十分理解,楼主不是想抛
空指针吧,举个例子,当传入的为Null的时候,抛出一个TermException(),给鬼子做项目的时候要有这个null判断,抛出一个他们想要的异常和异常号
不知道楼主是不是这个意思
------解决方案--------------------分情况 要看具体业务
有时s可能是从一个你不确定的一个程序传进来的 也就是别人调用了你 但是他传个空值会使程序达不到想要的效果 比如你这个方法是根据传过来的参数获取session 这样null值是没意义的 自然没必要调用get 而是要在get之前拦截 否则你用null得到的值是空 对那个空操作 就会nullpointer 这是你不希望的
还有一种情况就是 s是不是空对程序没有影响 比如你要用这个参数和某些值比较 这样就不需要判断
个人不喜欢判断 而是在javadoc中写好了 别传空进来 这是设计原则 我只保证传入正确的值可以得到正确的结果 你传的值有问题导致结果不对 能怪我吗
最好还是有个好的约定 避免这种情况
------解决方案--------------------防御式编程:
1、对方法的参数作判断,有可能增加效率,如果参数引起异常,尽早抛出总是没问题的
2、对方法的返回值作判断,使之是一个合理的值