Spec-Zone .ru
спецификации, руководства, описания, API
Содержание документации
СОДЕРЖАНИЕ | ПРЕДЫДУЩИЙ | NEXT

3.8 Использование Ошибок из-за неправильного обращения IIOException

В примерах выше, не рассмотрели возможность фатальных ошибок. Ошибки могут следовать из многих источников, включая истинные ошибки ввода-вывода (например, файл, не найденный, нечитабельный файл, файл на поврежденных носителях), нарушения защиты (например, никакое разрешение, чтобы считать файлы из апплета), проблемы формата файла (поврежденное содержание файла, файл, используя разновидность формата, который не поддерживается плагином), или даже ошибки в реализации API или в плагине.

API ввода-вывода Изображения использует его собственный подкласс стандарта IOException class, вызванный IIOException. IIOExceptions используются, чтобы сигнализировать все ошибки, с которыми встречаются во время парсинга исходного файла (например, неправильная контрольная сумма или недопустимое значение для определенного байта в пределах файла), включая истинные ошибки ввода-вывода тот результат в IOException будучи брошенным в пределах читателя.

IIOException содержит (нелокализованное) сообщение, описывающее причину исключения, так же как ссылку на другого Exception это было причиной IIOException, если Вы существуете.

Таким образом код программы, который пытается обеспечить корректную обработку ошибок, будет смотреть что-то как:

File f = new File("c:\images\myimage.gif");
ImageInputStream iis = null;
try {
        iis = ImageIO.createImageInputStream(f);
} catch (IIOException iioe1) {
        System.out.println("Unable to create an input stream!");
        return;
}

reader.setInput(stream);
try {
        reader.read(0, param);
} catch (IIOException iioe2) {
        System.out.println("An error occurred during reading: " +
                                 iioe2.getMessage());
        Throwable t = iioe2.getCause();
        if ((t != null) && (t instanceof IOException)) {
                System.out.println("Caused by IOException: " +
                                   t.getMessage());
        }
}


СОДЕРЖАНИЕ | ПРЕДЫДУЩИЙ | NEXT

Oracle и/или его филиалы Авторское право © 1993, 2012, Oracle и/или его филиалы. Все права защищены.
Свяжитесь с Нами