解决方案 »
- 关于二级联动下拉列表 ajax异步 dwr框架
- eclipse和cc的集成问题
- Unknown column 'NaN' in 'field list' 在线等
- 关于jsp调用servlet的一些问题
- 关于MyEclipse 环境的问题???
- Tomcat 5.5中配置JMS
- eclipse 调用 jboss 出错,NoClassDefFoundError
- 一台服务器的EJB通过JNDI方法调用另一台服务器的EJB,是什么样的作法,请指教,谢谢
- 能否提供一个struts简单数据库操作的例子,struts in action的例子和英文看的太累了 不明白
- EJB的基础问题!(在线等待)
- Permission denied
- linux搭建nexus私服,myeclipse硬死不能下载jar包,跪求解答
String[] data = line.split("\t");
System.out.println(data.length);
Double score = Double.parseDouble(data[2])-Double.parseDouble(data[3]);
我调试了, 这个结果是1 应该没有越界啊?
长度是1 ,确要取 data[2] 就越界了啊
我调试了, 这个结果是1 应该没有越界啊?
长度是1 ,确要取 data[2] 就越界了啊那是什么情况? 我总不能不取吧? 你熟悉这个么? 是进行语义分析方面的
但是 从技术的角度来讲,代码在这里是过不去的
可以添加一个数组长度的判断,如果长度大于等于4 的时候,可以执行
Double score = Double.parseDouble(data[2])-Double.parseDouble(data[3]);
但是 从技术的角度来讲,代码在这里是过不去的
可以添加一个数组长度的判断,如果长度大于等于4 的时候,可以执行
Double score = Double.parseDouble(data[2])-Double.parseDouble(data[3]);
谢啦啊 不过这样我感觉就失去意义了
我再想想其他办法
首先你认为你的数据被split开之后,一定是有多少项或者至少有多少项,要加一个判断的:
if (data == null || data.length < 5) {
//或者返回,或者抛出一个有意义的异常
throw new IllegalStateException("too short data length " + data == null ? "<null>" : "" + data.length);
}
if (w_n == null || w_n.length < 2) {
throw new IllegalStateException("too short w_n length " + w_n == null ? "<null>" : "" + w_n.length);
}
如果有必须的话,在抛出的异常信息里把当前行是第几行,当前行的内容是什么都包括进去,这样在debug时一下子知道是因为读到了文件里的哪一行出的问题,然后那一行的内容也在,可以对这一行单独分析为什么出问题,比如你按\t去split的,也许那一条的某一个分隔就不是\t,而是空格之类的,或者那行的数据里就是包括了一个\t,打乱了你对数据位置的假设,你肉眼看不出来,但程序就是出错了。另外,不管你是不是对你的输入数据有信心,程序上对null和arr.length的保护总是有必要的,起码会在出问题时提供debug所需的第一手信息。