Разделы презентаций


Лекции по Java SE Колесников Сергей, инженер-разработчик NetCracker

Содержание

План лекцииJava ExceptionsЧто это такоеМеханизм обработки ошибокОбъявление исключенийКлассификация исключенийИерархия классов исключенийЧасто встречающиеся исключенияСоздание собственных классов исключенийРазбор примеров в IDEПример отладки приложения в Intellij IDEA

Слайды и текст этой презентации

Слайд 1Лекции по Java SE Колесников Сергей, инженер-разработчик NetCracker
Лекция 6.
Exceptions. Отладка приложений.

Лекции по Java SE Колесников Сергей, инженер-разработчик NetCrackerЛекция 6.Exceptions. Отладка приложений.

Слайд 2План лекции
Java Exceptions
Что это такое
Механизм обработки ошибок
Объявление исключений
Классификация исключений
Иерархия классов

исключений
Часто встречающиеся исключения
Создание собственных классов исключений

Разбор примеров в IDE

Пример отладки

приложения в Intellij IDEA
План лекцииJava ExceptionsЧто это такоеМеханизм обработки ошибокОбъявление исключенийКлассификация исключенийИерархия классов исключенийЧасто встречающиеся исключенияСоздание собственных классов исключенийРазбор примеров

Слайд 31. Суть проблемы
Ошибки возникают в случаях:
некорректного ввода данных
сбоев оборудования
нарушения ограничений

среды
выполнения программного кода

Цели обработки ошибок
Обеспечение стабильности работы программы
Безопасность в процессе

выполнения
Дружественное поведение конечного программного продукта
1. Суть проблемыОшибки возникают в случаях:некорректного ввода данныхсбоев оборудованиянарушения ограничений средывыполнения программного кодаЦели обработки ошибокОбеспечение стабильности работы

Слайд 42. Подходы к обработке ошибок
Возвращение методом кода ошибки
Встроенный в

язык механизм проверки и обработки
int errNum = firstMethod();
if (errNum ==

-1) {
// обработка 1-ой ошибки
}
else if(errNum == -2) {
// обработка 2-ой ошибки
}

try {
someBusinessLogic();
...
anotherBusinessLogic()
}
catch(Exception1 e1) {
// обработка 1-ой ошибки
}
...
catch(ExceptionN eN) {
// обработка N-ой ошибки
}
finally {
// выполнение завершающих
// работу действий
}

2. Подходы к обработке ошибокВозвращение методом  кода ошибкиВстроенный в язык механизм проверки и обработкиint errNum =

Слайд 53. Механизм обработки
Создается и «выбрасывается» объект исключения, содержащий информацию об

ошибке
Выполнение текущего потока вычислений приостанавливается
Поиск обработчика исключений, возобновление потока выполнения

public

class SomeClass{
public void someMethod() {
try { //опасный код
method1();
method2();
} catch (ArrayIndexOutOfBoundsException e1) {
… //обрабатываем ошибку
} catch (IOException e2) {
… //обрабатываем ошибку
} finally {
… //этот блок выполнится в любом случае
}
}
}
3. Механизм обработкиСоздается и «выбрасывается» объект исключения, содержащий информацию об ошибкеВыполнение текущего потока вычислений приостанавливаетсяПоиск обработчика исключений,

Слайд 64. Объявление исключений
В чем проблема
Невозможно обработать ошибку в нашем коде
Не

хотим брать на себя ответственность за ошибку
Нужно «обернуть» exception

Что делать:
public

class SomeClass
{
public void someMethod() throws
IOException, ArrayIndexOutOfBoundsException
{
/* Код который может породить
IOException или ArrayIndexOutOfBoundsException */
// еще какой-то код
throw new IOException();
}
}
4. Объявление исключенийВ чем проблемаНевозможно обработать ошибку в нашем кодеНе хотим брать на себя ответственность за ошибкуНужно

Слайд 75. Классификация исключений
Объявляемые (проверяемые, checked)
Необъявляемые
(непроверяемые, unchecked)
Носят предсказуемый характер

Указываются в объявлении

метода

Наследуют от класса Exception
Обусловлены логикой кода

Могут не указываться в объявлении

метода

Наследуют от классов RuntimeException, Error
5. Классификация исключенийОбъявляемые (проверяемые, checked)Необъявляемые(непроверяемые, unchecked)Носят предсказуемый характерУказываются в объявлении методаНаследуют от класса ExceptionОбусловлены логикой кодаМогут не

Слайд 86. Базовые классы исключений

6. Базовые классы исключений

Слайд 97. Часто встречающиеся исключения
ArithmeticException
ArrayIndexOutOfBoundsException
StringIndexOutOfBoundsException
ClassNotFoundException
NullPointerException
FileNotFoundException
IOException
EOFException
OutOfMemoryError

7. Часто встречающиеся исключенияArithmeticExceptionArrayIndexOutOfBoundsExceptionStringIndexOutOfBoundsExceptionClassNotFoundExceptionNullPointerExceptionFileNotFoundExceptionIOExceptionEOFExceptionOutOfMemoryError

Слайд 108. Создание своих exception
Создается новый тип, наследующий от более широкого

типа, подходящего по смыслу (например, java.io.FileNotFoundException)

Само то, что выбрасывается исключение

более узкого типа, несет в себе информацию

В состав нового типа могут вводиться новые поля и методы

Чаще всего класс содержит только 2 конструктора (по умолчанию и с параметром-строкой), просто вызывающие конструкторы родительского класса
8. Создание своих exceptionСоздается новый тип, наследующий от более широкого типа, подходящего по смыслу (например, java.io.FileNotFoundException)Само то,

Слайд 119. try-catch-finally features

public class FinallyTest{
public static int stringSize(Object

s) {
try {

return s.toString().length();
} catch (Exception ex) {
return -1;
} finally {
return 0;
}
}

public static void main(String[] args) {
System.out.println(stringSize("string"));
System.out.println(stringSize(null));
}
}
9. try-catch-finally features public class FinallyTest{ public static int stringSize(Object s) {   try {

Слайд 1210. try-catch-finally features (продолжение)

public void Foo() {

try {
System.out.println(“Start”);
System.exit(0);
} catch (Exception e)

{
System.out.println(“Exception”);
} finally {
System.out.println(“End”);
}
}

public void Foo() {
try
{
doSmth();
}
finally
{
cleanup(); //чистку хотим делать в любом случае
}
}

10. try-catch-finally features (продолжение) public void Foo() {   try {	 System.out.println(“Start”);	 System.exit(0);   }

Слайд 1311. Some tips
Exceptions не обладают свойством транзакционности!
Multiple catch block (Java

7 and higher!)

Не используем пустые catch блоки!
Стараемся не возвращать из

методов null, чтобы избежать NullPointerException
Избегаем создания своих исключений

catch (NumberFormatException | IllegalArgumentException e)

11. Some tipsExceptions не обладают свойством транзакционности!Multiple catch block (Java 7 and higher!)Не используем пустые catch блоки!Стараемся

Слайд 14Итоги

Обрабатываем исключения в блоке try/catch/finally

Либо добавляем исключение в сигнатуру метода

Checked

and unchecked exceptions

Exceptions hierarchy

ИтогиОбрабатываем исключения в блоке try/catch/finallyЛибо добавляем исключение в сигнатуру методаChecked and unchecked exceptionsExceptions hierarchy

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика