Spec-Zone .ru
спецификации, руководства, описания, API
|
Предыдущий раздел показал, как записать обработчик исключений для writeList
метод в ListOfNumbers
class. Иногда, для кода уместно поймать исключения, которые могут произойти в пределах этого. В других случаях, однако, лучше позволить методу далее дескриптор стека вызовов исключение. Например, если Вы обеспечивали ListOfNumbers
class как часть пакета классов, Вы, вероятно, не могли ожидать потребности всех пользователей Вашего пакета. В этом случае лучше не поймать исключение и позволить методу далее стек вызовов, чтобы обработать это.
Если writeList
метод не ловит проверенные исключения, которые могут произойти в пределах него, writeList
метод должен определить, что может выдать эти исключения. Давайте изменим оригинал writeList
метод, чтобы определить исключения это может бросить вместо того, чтобы ловить их. Чтобы напомнить Вам, вот, оригинальная версия writeList
метод, который не будет компилировать.
// Note: This method won't compile by design! public void writeList() { PrintWriter out = new PrintWriter(new FileWriter("OutFile.txt")); for (int i = 0; i < SIZE; i++) { out.println("Value at: " + i + " = " + vector.elementAt(i)); } out.close(); }
Определить это writeList
может выдать два исключения, добавить a throws
пункт к объявлению метода для writeList
метод. throws
пункт включает throws
ключевое слово, сопровождаемое списком разделенных запятой значений всех исключений, выданных тем методом. Пункт идет после имени метода и списка параметров и перед фигурной скобкой, которая определяет контекст метода; вот пример.
public void writeList() throws IOException, ArrayIndexOutOfBoundsException {
Помните это ArrayIndexOutOfBoundsException
исключение непроверенное; включая это в throws
пункт не обязателен. Вы могли только записать следующий.
public void writeList() throws IOException {