Класс IOException
Класс IOException наследуется от класса Exception
и является проверяемым исключением. Он сигнализирует о том,
что во время выполнения операции ввода-вывода произошла
ошибка: например, файл не найден, нет прав на чтение,
поток был неожиданно закрыт или сетевое соединение
прервалось. Поскольку исключение проверяемое, его нужно
обрабатывать с помощью try-catch или
объявлять в сигнатуре метода через throws.
Конструктор класса принимает сообщение об ошибке в первом
параметре, а также может принимать причину (другое
исключение) во втором параметре.
Синтаксис
new IOException()
new IOException(String message)
new IOException(String message, Throwable cause)
new IOException(Throwable cause)
Пример
Давайте создадим объект исключения IOException
с сообщением об ошибке и выведем это сообщение:
public class Main
{
public static void main(String[] args)
{
IOException ex = new IOException("File not found");
System.out.println(ex.getMessage());
}
}
Результат выполнения кода:
"File not found"
Пример
Давайте попробуем прочитать несуществующий файл и обработаем возникшее исключение:
import java.io.FileReader;
import java.io.IOException;
public class Main
{
public static void main(String[] args)
{
try
{
FileReader reader = new FileReader("test.txt");
reader.close();
}
catch (IOException ex)
{
System.out.println("IO error: " + ex.getMessage());
}
}
}
Результат выполнения кода:
"IO error: test.txt (No such file or directory)"
Пример
Давайте создадим исключение IOException
с причиной и получим эту причину через метод
getCause:
public class Main
{
public static void main(String[] args)
{
IOException cause = new IOException("Disk failure");
IOException ex = new IOException("Read error", cause);
System.out.println(ex.getMessage());
System.out.println(ex.getCause().getMessage());
}
}
Результат выполнения кода:
"Read error"
"Disk failure"