Справка по исключениям Java - PullRequest
0 голосов
/ 15 июня 2011

Может кто-нибудь объяснить мне часть throws Exception в следующем коде?

public static void main(String args[]) throws Exception {

   //do something exciting...

}

Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 15 июня 2011

означает, что функция main(String[]) может генерировать любой подтип Exception. в Java все исключения, генерируемые методом (кроме RunTimeException), должны быть явно объявлены .
, что означает, что каждый метод, использующий main(String[]), должен будет заботиться (try, catch) Exception или объявить себя как throwing Exception.

1 голос
/ 15 июня 2011

Исключения - это способ, с помощью которого Java действует, когда происходит что-то неожиданное.Например, если вы хотите читать / писать из / в файл, вы должны обработать IOException, который будет выдан, если возникнет проблема с файлом.

Небольшой пример, чтобы объяснить это вам:

Давайте возьмем метод с именем method1(), который выбрасывает исключение:

public void method1() throws MyException {
  if (/* whatever you want */)
    throw new MyException();
}

Его можно использовать двумя способами.Первый способ с method2() просто бросит горячий картофель дальше:

public void method2() throws MyException {
  method1();
}

Второй способ с method3() позаботится об этом исключении.

public void method3() {
  try {
    method1();
  }
  catch (MyException exception) {
  {
    /* Whatever you want. */
  }
}

Для получения дополнительной информацииЧто касается исключений, http://download.oracle.com/javase/tutorial/essential/exceptions/ должно помочь.


EDIT

Допустим, мы хотим вернуть содержимое значения в этом массиве (которыйявляется квадратом введенного числа): int[] squares = {0, 1, 4, 9, 16, 25}; или 0, если число (input) слишком велико.

Программирование пешеходов:

if (input > squares.length)
  return 0;
else
  return squares[input];

Программирование гуру исключений:

try {
  return squares[input];
}
catch (ArrayIndexOutOfBoundException e) {
  return 0;
}

Второй пример более чистый, поскольку после этого вы также можете добавить еще один блок (и еще один), чтобы устранить все возможные проблемы.Например, вы можете добавить это в конце:

catch (Exception e) { // Any other exception.
  System.err.println("Unknown error");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...