У меня есть два фрагмента кода:Throw исключение в пункте поймать
class PreciseRethrow {
public static void main(String[] str) {
try {
foo();
} catch (NumberFormatException ife) {
System.out.println(ife);
}
}
static private void foo() throws NumberFormatException {
try {
int i = Integer.parseInt("ten");
} catch (Exception e) {
throw e;
}
}
}
и:
class PreciseRethrow {
public static void main(String[] str) {
try {
foo();
} catch (NumberFormatException ife) {
System.out.println(ife);
}
}
static private void foo() throws NumberFormatException {
try {
int i = Integer.parseInt("ten");
} catch (Exception e) {
throw new Exception();
}
}
}
Во втором случае я получил ошибка компиляции "Необработанное исключение типа Exception", когда я бросаю новую Exception () в разделе catch. Можете ли вы объяснить мне, почему в первом случае все в порядке, но во втором я получаю ошибку компиляции? В обоих случаях я бросаю Exception, но во втором случае я создаю новый экземпляр исключения (это только в разнице между этими двумя примерами). Спасибо за помощь.
Хороший вопрос +1 – spiderman
@prash: Вы забыли фактически голосовать? – Keppil
Да! Infact я сделал с мобильного. И запрос не завершен. 3g было очень мало. Это было сейчас. Благодарю. @Keppil – spiderman