Презентация по дисциплине Информатика и программирование на тему Исключения на ЯВУ. В данной презентации рассматриваются типы и подклассы исключений в ЯВУ, главный класс создания исключений, генерирование исключений через использование оператора throws , throw, а также исследуются блоки try/catch, finally и т.д.
653751.pptx
Презентация на тему Исключения в ЯВУ
Исключения
в Java
Презентация на тему Исключения в ЯВУ
Исключения – это механизм
взаимодействия между кодом,
приведшим к ошибке, и кодом,
обрабатывающим ошибку
Исключение выбрасывается (throw), когда возникает некоторая ситуация.
Оно перехватывается в программе (catch). В противном случае оно
обрабатывается по умолчанию
Throwable
Error
непроверяемые
Exception
Error – фатальные ошибки
RuntimeExcaption – компилятор не
требует их обязательной обработки
Exception – компилятор проверяет
предусмотрена ли обработка ошибок
RuntimeException
непроверяемые
Все прочие
проверяемые
Презентация на тему Исключения в ЯВУ
Причины возникновения
исключений
• Попытка выполнить некорректное выражение. Например, деление на ноль, или
обращение к объекту по ссылке, равной null, попытка использовать класс, описание
которого (classфайл) отсутствует, и т.д. В таких случаях всегда можно точно
указать, в каком месте произошла ошибка, именно в некорректном выражении.
• Выполнение оператора throw Этот оператор применяется для явного порождения
ошибки. Здесь тоже можно указать место возникновения исключительной
ситуации.
• Асинхронные ошибки во время исполнения программы.
Все ошибки делятся на:
синхронные – возможно найти точное место в коде, которое является причиной
возникновения исключительной ситуации
асинхронные гораздо сложнее в обнаружении и исправлении. Обычному
разработчику очень трудно выявить причины сбоев в виртуальной машине. Это
могут быть ошибки создателей JVM, несовместимость с операционной системой,
аппаратный сбой и т.д.
Оператор throw
Программист сам может явно породить исключительную ситуацию
...
public int calculate(int theValue) throws Exception { I
f( theValue < 0) {
throw new Exception("Параметр для вычисления не должен быть отрицательным");
}}...
Можно передать информацию об исключительной ситуации в вызывающий код
...
try { ...
} catch(IOException ex) {
... // Обработка исключительной ситуации
... // Повторное возбуждение исключительной ситуации
throw ex;
}
Презентация на тему Исключения в ЯВУ
Преимущества исключений
• Разделение кода и обработки ошибок
• Группирование ошибок по типам
• Раскрутка стека
method1 {
try {
call method2;
} catch (exception) {
doErrorProcessing;
}
}
method2 throws exception {
call method3;
}
method3 throws exception {
call readFile;
}
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;
}
}
Презентация на тему Исключения в ЯВУ
Создание классов
исключений
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!");}
}
Презентация на тему Исключения в ЯВУ
Перехват исключений
} catch(MyException e){
System.out.println("Mistake");
} finally {
System.out.println("Id="+id);
class ExceptThrow
{
public static void main(String[] args)
{
int id = 1;
try {
if (id<1)throw new MyException();
}
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 class IllegalOne extends BaseClass {
public void method () throws
IOException,IllegalAccessException
{ ... }
}
public class IllegalTwo extends BaseClass {
public void method ()
{ ... throw new Exception(); }
}
Исключение не
указано
public void method () throws IOException, MalformedURLException
{ ... }
}
Метод создает исключения, которые
являются подклассами исключения,
возбуждаемого в старом методе
Материалы на данной страницы взяты из открытых истончиков либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.