SlideShare a Scribd company logo
1 of 16
C# 4.0 Обработка исключений DraggonZ
Основные типы ошибок Программные ошибки (bugs) Пользовательские ошибки Исключения
System.Object System.Exception System.SystemException System.ApplicationException
Ключевые слова try catch throw finally
try/catch try {  // Блок кода, проверяемый на наличие ошибок.  }  catch {ExType1 e) {  // Обработчик исключения типа ExType1.  }  catch {ExType2 e) {  // Обработчик исключения типа ЕхТуре2.  } …
Перехват всех исключений catch {  // обработка исключений  }
Блоки try можно вложить друг в друга!
throw Оператор throw используется для ручного генерирования исключения: throw exOb;
Повторное генерирование исключений throw;
finally try {  // Блок кода, предназначенный для обработки ошибок.  }  catch (ExType1 e) {  // Обработчик исключения типа ExType1.  }  catch (ExType2 е) {  // Обработчик исключения типа ЕхТуре2.  } … finally {  // Код завершения обработки исключений.  }
Блок finally будет выполняться всякий раз, когда происходит выход из блока try/catch, независимо от причин, которые к этому привели.
Основные свойства класса System.Exception Message – строка, описывающая характер ошибки; StackTrace – строка с вызовами стека, приведшими к исключительной ситуации; TargetSite – объект, получающий метод, сгенерировавший исключение;
Создание специальных исключений public class MyException: ApllicationException { }
Требования к специальному исключению: • наследоваться от ApplicationException;  • сопровождаться атрибутом [System. Serializable];  • иметь конструктор по умолчанию;  • иметь конструктор, который устанавливает значение унаследованного свойства Message;  • иметь конструктор для обработки "внутренних исключений";  • иметь конструктор для обработки сериализации типа.
Checked/Unchecked Применяются для проверки/игнорирования переполнения при вычислении арифметического выражения
Спасибо!

More Related Content

What's hot

Исключительные ситуации
Исключительные ситуацииИсключительные ситуации
Исключительные ситуацииAlexey Bovanenko
 
Исключения C++ через призму компиляторных оптимизаций. Роман Русяев ➠ CoreHa...
Исключения C++ через призму компиляторных оптимизаций. Роман Русяев ➠  CoreHa...Исключения C++ через призму компиляторных оптимизаций. Роман Русяев ➠  CoreHa...
Исключения C++ через призму компиляторных оптимизаций. Роман Русяев ➠ CoreHa...corehard_by
 
Конструктор копирования
Конструктор копированияКонструктор копирования
Конструктор копированияAlexey Bovanenko
 
Глава 3: примитивные типы и операции с ними в Java
Глава 3: примитивные типы и операции с ними в JavaГлава 3: примитивные типы и операции с ними в Java
Глава 3: примитивные типы и операции с ними в Javametaform
 
Тестируем тесты с PIT (мутационное тестирование)
Тестируем тесты с PIT (мутационное тестирование)Тестируем тесты с PIT (мутационное тестирование)
Тестируем тесты с PIT (мутационное тестирование)Vitebsk Miniq
 
Глава1: Обзор технологии Java
Глава1: Обзор технологии JavaГлава1: Обзор технологии Java
Глава1: Обзор технологии Javametaform
 
C language lect_22_advanced
C language lect_22_advancedC language lect_22_advanced
C language lect_22_advancedRoman Brovko
 
Анализ указателей в программах с вызовами библиотечных функций
Анализ указателей в программах с вызовами библиотечных функцийАнализ указателей в программах с вызовами библиотечных функций
Анализ указателей в программах с вызовами библиотечных функцийAlex Markin
 
Массивы в Java
Массивы в JavaМассивы в Java
Массивы в Javametaform
 

What's hot (10)

Исключительные ситуации
Исключительные ситуацииИсключительные ситуации
Исключительные ситуации
 
Исключения C++ через призму компиляторных оптимизаций. Роман Русяев ➠ CoreHa...
Исключения C++ через призму компиляторных оптимизаций. Роман Русяев ➠  CoreHa...Исключения C++ через призму компиляторных оптимизаций. Роман Русяев ➠  CoreHa...
Исключения C++ через призму компиляторных оптимизаций. Роман Русяев ➠ CoreHa...
 
Конструктор копирования
Конструктор копированияКонструктор копирования
Конструктор копирования
 
Глава 3: примитивные типы и операции с ними в Java
Глава 3: примитивные типы и операции с ними в JavaГлава 3: примитивные типы и операции с ними в Java
Глава 3: примитивные типы и операции с ними в Java
 
Тестируем тесты с PIT (мутационное тестирование)
Тестируем тесты с PIT (мутационное тестирование)Тестируем тесты с PIT (мутационное тестирование)
Тестируем тесты с PIT (мутационное тестирование)
 
Глава1: Обзор технологии Java
Глава1: Обзор технологии JavaГлава1: Обзор технологии Java
Глава1: Обзор технологии Java
 
Java Course Day 7
Java Course Day 7Java Course Day 7
Java Course Day 7
 
C language lect_22_advanced
C language lect_22_advancedC language lect_22_advanced
C language lect_22_advanced
 
Анализ указателей в программах с вызовами библиотечных функций
Анализ указателей в программах с вызовами библиотечных функцийАнализ указателей в программах с вызовами библиотечных функций
Анализ указателей в программах с вызовами библиотечных функций
 
Массивы в Java
Массивы в JavaМассивы в Java
Массивы в Java
 

Обработка исключений