Добавил:
Rumpelstilzchen2018@yandex.ru Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3-й семестр / Лекции / 6 - Презентация - Исключения и их обработка в Java.pptx
Скачиваний:
67
Добавлен:
25.12.2020
Размер:
13.93 Mб
Скачать

Центр дистанционного обучения

Пример выражение

throw// представляет собой исключительное состояние, которое

//обрабатывает случай, когда значение находится вне //некоторого конкретного диапазона.

public class OutOfRangeException extends Exception

{

//

/Устанавливает объект исключения с определенным сообщением

OutOfRangeException (String message)

{

super (message);

}

}

online.mirea.ru

Центр дистанционного обучения

Исключе

ния

Поэтому примеры выше с catch для unchecked exceptions – только для иллюстрации!

online.mirea.ru

I/O

Центр дистанционного обучения

исключенияДавайте рассмотрим вопросы, связанные с исключениями ввода/вывода

Поток представляет собой последовательность байтов, которые выходят из некоторого источника

инаправляются в приемник,

В программе, мы читаем информацию из входного потока данных и записываем информацию в

выходной поток

• Программа может управлять несколькими потоками одновременно

10-64 online.mirea.ru

Стандартны

Центр дистанционного обучения

 

е I/O

 

• Существуют три стандартных потока ввода/вывода:

Стандартный поток вывода

–определен в

System.out

 

Стандартный поток ввода

– определен в

System.in

 

Стандартный поток ошибок

– определен в

System.err

 

Мы используем System.out когда, напрмер выполняем выражение println()

System.out и System.err обычно представляют как правило, представляют собой конкретное окно на экране монитора

System.in обычно представлят ввод клавиатуры,

10-65

который мы многократно используем с объектами

online.mirea.ru

Scanner

Центр дистанционного обучения

Исключе

ния

class IOException extends Exception { ... }

class FileNotFoundException extends IOException { ... }

class NoSuchFileException extends IOException { ... }

online.mirea.ru

Центр дистанционного обучения

Класс

IOException

Операции, выполняемые с помощью некоторых классов ввода / вывода могут выбрасывать IOException

Файл с таким именем может не существовать

Даже если файл существует, программа может быть не состоянии найти его

• Файл может не содержать тип данных, мы ожидаем

IOException это проверяемое исключение

10-67 online.mirea.ru

Центр дистанционного обучения

Исключе

В tryния... catch может быть несколько блоков catch. При этом срабатывает первый блок, под который подпадает сработавшее исключение. Поэтому сначала должны идти более специфичные, потом более общие исключения.

try {

byte[] data = Files.readAllBytes(Paths.get(“file.txt”));

}catch (IOException ex) { System.err.println(ex.toString());

}catch (NoSuchFileException | FileNotFoundException ex) {

// Сюда мы никогда не попадаем!

online.mirea.ru

Центр дистанционного обучения

Исключе

ния

В блоке catch может быть указано несколько исключений. При этом тип переменной ex – их общий предок (всегда как минимум Throwable).

try {

byte[] data = Files.readAllBytes(Paths.get(“file.txt”));

}catch (NoSuchFileException | FileNotFoundException ex) { System.err.println(“Файл не найден”);

}catch (IOException ex) { System.err.println(ex.toString());

}

online.mirea.ru

Центр дистанционного обучения

Исключе

ния

Path file = Paths.get(“file.txt”);

Bu eredReader rdr = Files.newBu eredReader(file); String line1 = rdr.readLine();

rdr.close(); // может быть не вызван, если в rdr.readLine() произойдет ошибка!

Открытые файлы всегда нужно закрывать!

online.mirea.ru

Центр дистанционного обучения

Исключе

ния

Path file = Paths.get(“file.txt”); try (Bu eredReader rdr = Files.newBu eredReader(file)) {

String line1 = rdr.readLine();

}

В блоке try-with-resources rdr.close() вызывается автоматически!

online.mirea.ru