С кодом, который вы показываете, вы также поймаете исключение NullPointerException. Но выполнение будет продолжено после блока catch. Таким образом, выполнение somelibary.main () в этом случае останавливается. Если ваш main () не содержит больше кода, программа завершит работу после перехвата исключения. Это то, что, вероятно, происходит. Вы можете опубликовать полный код вашего основного, чтобы проверить это.
Добавление: Вы хотите знать, как продолжить выполнение программы. Но в этом случае somelibrary.main () останавливается с помощью исключения. Единственной опцией в главном классе будет цикл, который повторно выполняет somelibrary.main (). Другая возможность состоит в том, чтобы перехватить исключение на каком-то более высоком уровне (основной цикл ввода), где вы можете игнорировать проблему и продолжить выполнение кода. Поскольку вы говорите, что выполняете другой jar-main, я подозреваю, что вы не можете изменить код другого jar. Таким образом, вам остается только выполнить еще одно основное:
boolean ended = false;
while (!ended)
{
try {
somelibary.main()
ended = true;
}
catch (Exception e) {
System.out.println("Exception Caught");
}
}
Этот код перезапускает другую основную часть при исключении, но завершается, если другая основная часть завершается нормально.