Презентация "Исключения в Java"
Подписи к слайдам:
Исключение выбрасывается (throw), когда возникает некоторая ситуация.
Оно перехватывается в программе (catch). В противном случае оно обрабатывается по умолчанию
Throwable
Error
непроверяемые
Exception
RuntimeException
непроверяемые
Все прочие
проверяемые
Error – фатальные ошибки RuntimeExcaption – компилятор не требует их обязательной обработки Exception – компилятор проверяет предусмотрена ли обработка ошибок |
- Попытка выполнить некорректное выражение. Например, деление на ноль, или обращение к объекту по ссылке, равной null, попытка использовать класс, описание которого (class-файл) отсутствует, и т.д. В таких случаях всегда можно точно указать, в каком месте произошла ошибка, - именно в некорректном выражении.
- Выполнение оператора throw Этот оператор применяется для явного порождения ошибки. Здесь тоже можно указать место возникновения исключительной ситуации.
- Асинхронные ошибки во время исполнения программы. Все ошибки делятся на:
- синхронные – возможно найти точное место в коде, которое является причиной возникновения исключительной ситуации
- асинхронные - гораздо сложнее в обнаружении и исправлении. Обычному разработчику очень трудно выявить причины сбоев в виртуальной машине. Это могут быть ошибки создателей JVM, несовместимость с операционной системой, аппаратный сбой и т.д.
- Разделение кода и обработки ошибок
- Группирование ошибок по типам
- Раскрутка стека
readFile {
try {
open the file;
determine its size;
allocate that much memory;
read the file into memory;
close the file;
} catch (fileOpenFailed) {
doSomething;
} catch (sizeDeterminationFailed) {
doSomething;
} catch (memoryAllocationFailed) {
doSomething;
} catch (readFailed) {
doSomething;
} catch (fileCloseFailed) {
doSomething;
}
}
method1 {
try {
call method2;
} catch (exception) {
doErrorProcessing;
}
}
method2 throws exception {
call method3;
}
method3 throws exception {
call readFile;
}
Создание классов исключений public class UserException extends Exception { public UserException() { super(); } public UserException(String descry) { super(descry); } } Выбрасывание исключения: throw new UserException( "Дополнительное описание"); Выбрасывание исключений class ExceptThrow { public static void main(String[] args)throws MyException {int id = -1; if (id<1)throw new MyException(); System.out.println("Никогда не выполнится"); } } class MyException extends Exception { MyException(){System.out.println("Id must be natural!");} } Перехват исключенийclass ExceptThrow
{
public static void main(String[] args)
{
int id = -1;
try {
if (id<1)throw new MyException();
} catch(MyException e){
System.out.println("Mistake");
} finally {
System.out.println("Id="+id);
}
System.out.println("Finished");
}
}
class MyException extends Exception
{
MyException(){System.out.println("Id must be natural!");}
}
Переопределение методов и исключений При переопределении метода список исключений можно только сужать public class BaseClass{ public void method () throws IOException { ... } } public class LegalOne extends BaseClass { public void method () throws IOException { ... } } public class LegalTwo extends BaseClass { public void method () { ... } } public class LegalTree extends BaseClass { public void method () throws IOException, MalformedURLException { ... } }
Ошибка!!! public class IllegalOne extends BaseClass { public void method () throws IOException,IllegalAccessException { ... } } public class IllegalTwo extends BaseClass { public void method () { ... throw new Exception(); } } |
Метод создает исключения, которые являются подклассами исключения, возбуждаемого в старом методе |
Исключение не указано |
Информатика - еще материалы к урокам:
- Тесты по информационным технологиям
- Профилактическое занятие "Риски и возможности Интернета" 8-11 класс
- Контрольная работа "Проектирование программного обеспечения"
- Исполнитель Робот. Подготовка к ГИА по информатике
- Конспект урока по веб-дизайну на 3 курсе "Работа со строками в языке JavaScript"
- Личностно-ориентированное обучение на учебных занятиях информатики