Практическое программирование на Java к.ф.-м.н. Козлов Дмитрий Дмитриевич Кафедра АСВК, Лаборатория Вычислительных комплексов
Лекция 3. «Beyond the C». Обработка ошибок. Библиотеки Java.
Обработка ошибок в программах Пользователи всегда делают не то, что предполагает программа Программа не должна «падать», если ей на вход дали некорректные данные. Все данные, вводимые пользователем надо проверять
Защита от неправильных входных данных Проверяйте все данные из внешних источников Проверяйте значения входных параметров метода Обнаруживайте ошибку как можно раньше
Защита от неправильных входных данных (2) Решите, как обрабатывать неправильные входные данные: –Завершить работу программы –Выдать сообщение об ошибке –Записать сообщение об ошибке в журнал (во внешний файл) –Вызвать обработчик ошибок –Обработать ошибку в месте возникновения –Заменить данные корректными
Инструменталные средства для обработки ошибок Условные операторы Исключения Asserts Средства протоколирования
Обработка ошибок с применением условных операторов File f = new File(myfile.txt); if ( ! f.canRead() ) { System.err.println(Cant read file + myfile.txt); } BufferedReader in = new BufferedReader( new FileReader(f) ); do { String s = in.readLine(); if (s != null ) { System.out.println(s); } } while ( s != null )
Обработка ошибок в Unix Каждая программа возвращает числовое значение – код возврата: 0 – все хорошо, >0 – код ошибки. В командном интерпретаторе (shell) можно выстраивать цепочки команд, проверяя, выполнилась ли правильно предыдущая программа: > test – x index.html && echo 1 > test –r index.html && echo 1 1 >
Механизм исключений KISS Повышение читабельности кода Цель исключений – отделить нормальное выполнение программы от обработки возможных ошибок. А также дать программисту возможность обрабатывать ошибки там, где это нужно, а не там, где они возникли.