Обсуждение вопросов, связанных с системой проведения турниров ejudge.
-
Igel_SK - Posts:1
- Joined:19 September 2012, 22:37
Presentation вместо Runtime (Java)
Post
by Igel_SK » 19 September 2012, 22:46
При отправке решения на Java, которое должно выдавать Runtime Error, выдается вердикт Presentation Error (программа ничего не вывела из-за exception'a), а информация об exception'е выводится на stderr. Как можно это исправить?
Отчет системы на задачу А тестового контеста:
Code: Select all
--- Input ---
1
1
--- Output ---
--- Correct ---
2
--- Stderr ---
Exception in thread "MyRunThread" java.lang.ArithmeticException: / by zero
at Solver.solve(Main.java:72)
at Main.run(Main.java:54)
at java.lang.Thread.run(Thread.java:722)
--- Checker output ---
user program output: unexpected EOF
Похоже, проблема возникает только тогда, когда внутри java программы запускается новый thread и exception происходит в нем.
-
cher - Posts:1153
- Joined:13 March 2004, 17:00
-
Contact:
Post
by cher » 20 September 2012, 14:31
Выложите, пожалуйста исходный код примера.
-
dalex - Posts:2
- Joined:23 July 2012, 11:48
Post
by dalex » 20 September 2012, 14:46
О, зашел на форум и увидел интересную тему. У меня то же самое. Вот этот код получает Accepted:
Code: Select all
import java.util.*;
public class Main implements Runnable {
@Override
public void run() {
Scanner in = new Scanner(System.in);
int a = in.nextInt();
int b = in.nextInt();
System.out.println(a + b);
int c = 0;
int d = 0;
int e = c / d;
}
public static void main(String[] args) {
new Thread(new Main()).start();
}
}
Ответ вывелся правильный, а то, что exception возник в каком-то другом треде, ejudge не очень-то и заботит.
-
cher - Posts:1153
- Joined:13 March 2004, 17:00
-
Contact:
Post
by cher » 20 September 2012, 20:04
Поскольку процесс java-машины завершается с кодом завершения 0, нет причин считать, что при работе процесса возник run-time error.