Исходя из вышеприведенного ответа, он все равно может столкнуться с проблемами, если есть другой код, кроме запуска / выключения. Например, если у вас есть что-то вроде этого:
public class QuartzTest {
public static void main(String[] args) {
try {
// Grab the Scheduler instance from the Factory
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
// and start it off
scheduler.start();
System.out.println(args[5]);
scheduler.shutdown();
} catch (SchedulerException se) {
se.printStackTrace();
}
}
}
Приложение никогда не вызовет завершение работы, потому что вы получите ArrayIndexOutOfBoundsException (или что-то в этом роде). Существует довольно много способов решить эту проблему, но этот простейший, вероятно, заключался бы в том, чтобы обернуть весь промежуточный код в обработчик исключений и «обрабатывать» там все. Например:
открытый класс QuartzTest {
public static void main(String[] args) {
try {
// Grab the Scheduler instance from the Factory
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
// and start it off
scheduler.start();
try {
System.out.println(args[5]);
} catch (Exception e) {
e.printStackTrace();
}
scheduler.shutdown();
} catch (SchedulerException se) {
se.printStackTrace();
}
}
}