Когда я запускаю свои тесты junit на Eclipse, я получаю довольно высокий процент. Однако, когда я просматриваю онлайн-страницу с заданиями в моей школе, она получает крайне низкий охват кода. Я считаю, что это как-то связано со следующим кодом:
CompetitionDijkstra (String filename, int sA, int sB, int sC){
Scanner x;
this.sA = sA;
this.sB = sB;
this.sC = sC;
try {
x = new Scanner(new File(filename));
}
catch(Exception e) {
x = null;
System.out.println("could not find file");
}
String v_str = x.next();
String e_str = x.next();
this.v = Integer.parseInt(v_str);
this.e = Integer.parseInt(e_str);
this.graph = new EdgeWeightedGraph(v);
Edge buff = new Edge(0, 0, 0);
String bv_str;
String bw_str;
String bweight_str;
int bv, bw;
double bweight;
while(x.hasNext()) {
bv_str = x.next();
bw_str = x.next();
bweight_str = x.next();
bv = Integer.parseInt(bv_str);
bw = Integer.parseInt(bw_str);
bweight = Double.parseDouble(bweight_str);
buff = new Edge(bv, bw, bweight);
this.graph.addEdge(buff);
}
x.close();
}
В частности, строка String v_str = x.next();
Сайт сообщает мне, что он получает java .lang. NullPointerException из этой строки, несмотря на то, что я не получаю никаких ошибок или предупреждений в IDE. Я подозреваю, что это может быть связано с выполнением try-catch внутри конструктора, но я не могу быть уверен.
Что-то не так с кодом? Я хотел бы быть уверен, прежде чем задавать вопросы профессорам.
Спасибо.