След: Существенные Классы
Урок: Исключения
Ловля и Обработка Исключений
Домашняя страница > Существенные Классы > Исключения

Ловля и Обработка Исключений

Этот раздел описывает, как использовать три компонента обработчика исключений — try, catch, и finally блоки — чтобы записать обработчик исключений. Затем, try-оператор с ресурсами, представленный в Java SE 7, объясняется. try-оператор с ресурсами особенно подходит для ситуаций то использование Closeable ресурсы, такие как потоки.

Последняя часть этого раздела обходит через пример и анализирует то, что происходит во время различных сценариев.

Следующий пример определяет и реализует названный class ListOfNumbers. Когда создано, ListOfNumbers создает ArrayList это содержит 10 Integer элементы с последовательными значениями 0 до 9. ListOfNumbers class также определяет названный метод writeList, который написал список чисел в вызванный текстовый файл OutFile.txt. Этот пример использует выходные классы, определенные в java.io, которые покрываются Основным вводом-выводом.

// Note: This class won't compile by design!
import java.io.*;
import java.util.List;
import java.util.ArrayList;

public class ListOfNumbers {

    private List<Integer> list;
    private static final int SIZE = 10;

    public ListOfNumbers () {
        list = new ArrayList<Integer>(SIZE);
        for (int i = 0; i < SIZE; i++) {
            list.add(new Integer(i));
        }
    }

    public void writeList() {
        PrintWriter out = new PrintWriter(new FileWriter("OutFile.txt"));

        for (int i = 0; i < SIZE; i++) {
            out.println("Value at: " + i + " = " + list.get(i));
        }
        out.close();
    }
}

Первая строка в полужирном стиле является звонком в конструктора. Конструктор инициализирует поток вывода на файле. Если файл не может быть открыт, конструктор бросает IOException. Вторая полужирная строка является звонком ArrayList class get метод, который бросает IndexOutOfBoundsException если значение его параметра является слишком маленьким (меньше чем 0) или слишком большим (больше чем число элементов, в настоящий момент содержавшее ArrayList).

Если Вы пытаетесь скомпилировать ListOfNumbers class, компилятор печатает сообщение об ошибке об исключении, выданном FileWriter конструктор. Однако, это не выводит на экран сообщение об ошибке об исключении, выданном get. Причина состоит в том что исключение, выданное конструктором, IOException, проверенное исключение, и один брошенный get метод, IndexOutOfBoundsException, исключение непроверенное.

Теперь, когда Вы знакомы с ListOfNumbers class и где исключения могут быть выданы в пределах этого, Вы готовы записать обработчики исключений, чтобы поймать и обработать те исключения.


Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Выгода или Определяет Требование
Следующая страница: Блок попытки



Spec-Zone.ru - all specs in one place