Spec-Zone .ru
спецификации, руководства, описания, API
|
Этот раздел описывает, как использовать три компонента обработчика исключений — 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
).
Если Вы пытаетесь скомпилировать
class, компилятор печатает сообщение об ошибке об исключении, выданном ListOfNumbers
FileWriter
конструктор. Однако, это не выводит на экран сообщение об ошибке об исключении, выданном get
. Причина состоит в том что исключение, выданное конструктором, IOException
, проверенное исключение, и один брошенный get
метод, IndexOutOfBoundsException
, исключение непроверенное.
Теперь, когда Вы знакомы с ListOfNumbers
class и где исключения могут быть выданы в пределах этого, Вы готовы записать обработчики исключений, чтобы поймать и обработать те исключения.