Обработка исключений в C# Единая техника обнаружения ошибок времени выполнения и передачи информации о них.

Slides:



Advertisements
Similar presentations
(Using.NET Platform) Note: Most of the material in these slides have been adapted from MSDN and wikipedia. By Muhammad Ali.
Advertisements

Error Handling in.NET Exceptions. Error Handling Old way (Win32 API and COM): MyFunction() { error_1 = doSomething(); if (error_1) display error else.
Try…Catch…Finally Blocks ( continued ) Generic catch clause –Omit argument list with the catch –Any exception thrown is handled by executing code within.
Mahmoud Rafeek Alfarra Computer Programming || Chapter 2: Exception handling.
Exceptions Briana B. Morrison CSE 1302C Spring 2010.
Understand Error Handling Software Development Fundamentals LESSON 1.4.
ЗАРЯДКА НА АНГЛИЙСКОМ ЯЗЫКЕ.  Зарядка на уроке английского языка может стать самым любимым и веселым занятием для детей, при том, что она проходит исключительно.
Help: настройка Visual Studio.Net для создания консоль-приложения на основе Intel C++ с применением OpenMP. Инструменты «Практическое параллельное программирование.
Схема распределения грантов городам-участникам программы Тасис (TCAS) Экологические гранты для муниципалитетов.
Некомпенсаторное агрегирование и рейтингование студентов Авторы: Гончаров Алексей Александрович, Чистяков Вячеслав Васильевич. НФ ГУ ВШЭ 2010 год.
Всевоволод Головизнин, MVC – паттерн проектирование, в котором бизнес - логика, управляющая логика и интерфейс разделены на три отдельных компонента.
Учитель математики Кулакова Т.М. МОУ ООШ №15 г.о Новокуйбышевск Самарской области Сентябрь 2011г.
Что за хулиган толкает пассажиров автобуса то вперед, то назад? Этот хулиган, вернее, хулиганка -
© 2011 PM Expert Имя Фамилия. 2 © 2011 PM Expert Текст 1  Текст 2 Текст 3 Основные сведения о проекте Дайте краткую информацию о компании, для которой.
ООП Классы – 2. Ссылки Ссылка – еще одно имя объекта. Используйте ссылки вместо указателя. Это более безопасно. Complex c(10,10); Complex c2& = c; c2+=10;
Блок 3. Семейства белков I. Множественное выравнивание Первый курс, весна 2008, А.Б.Рахманинова.
Особенности Java. Блок static static { } Создание и уничтожение объектов  new – создание объекта  finalyze()
Erstmedia, , Москва, ул. Профсоюзная, 93А, офис (495) , Стратегия и тактика крупного бренда.
1 Генерация контекстных ограничений для баз данных Выполнил: Жолудев В. Научный руководитель: Терехов А.Н. Рецензент: Иванов А.Н.
1 Why do we need exceptions? In C, return variables must be used to indicate errors: if((fd = fopen(path,...)) == -1){ if(errno==a){...} else if(errno==b){...}
Freelance: правила игры. КИРИЛЛ РЕЗНИЧЕНКО + СПЕЦИАЛИСТ В ОБЛАСТИ 3D ГРАФИКИ + КООРДИНАТОР ОБРАЗОВАТЕЛЬНОГО ЦЕНТРА КОМПАНИИ AUTODESK ПРИ ВГУ.
Михаил Налётов Активные продажи на сайте. Может ли ваш сайт работать еще эффективнее?
NSU-Intel Lab Название проекта. Project goals Mission: что изменит реализация этого проекта в мире Vision: что нужно сделать для того, чтобы это изменение.
Сравнение различных методов хранения XML в реляционных базах данных и в разных системах. Нгуен Тхань Хуен- 545 группа Руководитель : Б.А. Новиков Рецензент:
1 Ребенок в Сети. Ребенок играет?
 Нужно много различных протоколов связи  Каждый из них может реализовываться на разных платформах Современные сети Много устройств, компьютеров и сетей.
Американские авиадиспетчеры По теме «Контрактная природа фирмы»
Exception Handling An Exception is an indication of a problem that occurs during a program’s execution. Exception handling enables the programmer to create.
Автор: Новитская О.В.. Об авторе: Н Новитская Ольга Владимировна Студентка Кемеровского Государственного Университета физического факультета 4 курса группы.
Chapter 15 Strings String::Concat String::CompareTo, Equals, == If( string1 == S”Hello”) String1->Equals(S”Hello”) String1->CompareTo(S”Hello”) CompareTo.
Пользовательские действия (custom actions) в JSP. JSTL.
Поиск ошибок в многопоточном приложении (на примере Thread Checker) ЛЕКЦИЯ 9, часть 1.
Формы в HTML. Элемент FORM Элемент уровня «блок» Управляющие элементы Просто текст Атрибуты: action – url обработчика method – post или get enctype –
Exceptions. 2 Objectives Introduce C# exception handling –library exception types –custom exceptions Describe keywords used for exception handling –try.
Демидов А.В г. Операционные системы Лекция 4 Работа с файлами.
Обработка исключений Гудов А.М., Завозкин С.Ю
Семафоры-счетчики POSIX Программирование с использованием POSIX thread library.
Новосибирск, 2004 (С) Всеволод Рылов, все права защищены 1 Основы программирования на языке Java Обработка исключений.
Exceptions COMP53 Sept Exceptions An exception is an object that gets thrown to indicate an error or other exceptional condition. Using exceptions.
TMG Tel: 8 (495) Fax: 8 (477) Technology Management Group ООО «TMG» PayKeeper.
Обработка исключительных ситуаций, работа с файлами  Исключительные ситуации  Классы File, InputStream, RandomAccessFile, FileReader, BufferedReader,
Java Exceptions. Intro to Exceptions  What are exceptions? –Events that occur during the execution of a program that interrupt the normal flow of control.
Учитель Антонова О.Я. Учитель Антонова О.Я. Зерноградская поликлиника.
XML Схемы XML документов. XML Schema созданая Microsoft позволяет избавиться от DTD блоков. Основа – использование пространств имен и очень точная типизация.
16-Aug-15 Java Puzzlers From the book Java Puzzlers by Joshua Bloch and Neal Gafter.
Introduction to Computer Programming Error Handling.
COMPUTER PROGRAMMING 2 Exceptions. What are Exceptions? Unexpected events that happen when the code is executing (during runtime). Exceptions are types.
Нескучное тестирование с pytest
1 R E F R I G E R A T I O N A N D A I R C O N D I T I O N I N G Как обновить программное обеспечение в AK-SC 255.
The fundamentals of English grammar Sequence of Tenses or Tense Shift.
Exceptions Syntax, semantics, and pragmatics Exceptions1.
Conditionals употребляется для того, чтобы назвать действие, которое не происходит или не произошло, т.к. для этого не было или.
Объектные интерфейсы (.NET) «Школа Инноваций InterSystems 2007»
Saint Petersburg, 2011 Java Lecture Generics. Quiz ArrayList lst = new ArrayList(); Collection c = lst; lst.add("one"); lst.add(“two"); lst.add(“three");
Anekdot ANDROID CLUB Сегодня  Navigation Drawer  CardView  Calligraphy  TextToSpeech.
ZHANG Yu, Intelligence Engineering Lab at College of Computer Science and Technology in Jllin University 1 Programming in C#.NET.
Exception Handling SWE 344 Internet Protocols & Client Server Programming.
C# Exceptions 1 CNS 3260 C#.NET Software Development.
Опыт Технопарка БНТУ по разработке проектной заявки Что скрывает CBHE? Томашевич Наталия Юрьевна Руководитель Центра МНТС Научно-технологический парк БНТУ.
#msdevcon Community Track Microsoft.ServiceFabriс для построения платформы Connected Car Антон Троянов Старший архитектор решений, BrightBox LLC, Россия.
Lecture 11 Dr. Eng. Ibrahim El-Nahry Exception Handling.
Exceptions and Object Lifetime
Syntax, semantics, and pragmatics
CNS 3260 C# .NET Software Development
Exception Handling By: Enas Naffar.
Programming in C# Lesson 5. Exceptions..
Chapter 13 Exception Handling: A Deeper Look
ПРИНЯТИЕ БРОНИ.
ПРИНЯТИЕ БРОНЕЙ. ОСНОВНЫЕ ФРАЗЫ ПРИ ПРИНЯТИИ БРОНИ ПО ТЕЛЕФОНУ 1. Leto Lounge, (Петровка, Дубровка, Фрунзенская)/ Проект 6/2, имя, приветствие. 2. Уточнение.
Presentation transcript:

Обработка исключений в C# Единая техника обнаружения ошибок времени выполнения и передачи информации о них.

Что было? Собственная логика выявления для каждого приложения. Субъективный подход программиста (или группы разработчиков) к проблеме обработки исключений. Нет единого стандарта (разные методики и встроенные средства в Win32 API, COM, MFC)… Привязка методики к конкретному языку, алгоритму, проекту.

Вуаля - Structured Exception Handling В.NET было приято навести порядок буквально во всём. Единый и хорошо продуманный подход к обработке ошибок. Единый подход для всех языков.NET. Бонус – генерация и перехват исключений между двоичными файлами, AppDomains и компьютерами в независимом от языка стиле. Как – RFTM.

System.Exception. Основные свойства. HelpLink – URL файла справки с описанием ошибки. Message – текстовое описание ошибки (Read Only). Source – Имя объекта (или приложения), сгенерировавшего ошибку. StackTrace – Последовательность вызовов, которые привели к ошибке (Read Only). Inner exception – Используется для сохранения сведений об ошибке между сериями исключений.

Как и когда использовать. Исключения используются тогда, когда выполнение метода должно быть немедленно прервано. При проектировании класса необходимо определиться, где и как будут использоваться исключения. В.NET уже определены различные стандартные исключения (ArgumentOutOfRangeException, IndexOutOfRangeException, StackOverflowException и др).

Пришёл, проник и обезвредил… public static int Main (string[] args) { MyObject a = new MeObject(); try { a.DoSmthUnreal(); if (a.IsDead()) { throw new Exception(“Your object is dead!”); } catch(Exception e) { Console.WriteLine(e.Message); Console.WriteLine(e.StackTrace); } «Просто catch» будет обрабатывать вообще все сгенерированные исключения.

Хотим свой класс для обработки исключений. public class MyObjectIsDead : Exception { private string ObjName; public MyObjectIsDead() {} public MyObjectIsDead(string ObjName) { this.ObjName = ObjName; } public override string Message { get { string msg = base.Message; if (ObjName != null) { msg += ObjName; } return msg; } catch(MyObjectIsDead e) { Console.WriteLine(e.Message); Console.WriteLine(e.StackTrace); }

Можно проще! public class MyObjectIsDead : Exception { public MyObjectIsDead() {} public MyObjectIsDead(string message) : base(message) {} public MyObjectIsDead(string message, Exception innerEx) : base(message, innerEx) {} }

Что ещё… Обработка нескольких исключений – просто несколько блоков catch. Необязательный блок finally после try/catch – будет выполнен независимо от того, сработало ли исключение (освобождение ресурсов, отключение от БД…). Не допускать не отловленных исключений (если нет желания вести неприятные диалоги с отладчиком)!! Не допускать бесконечных исключений (не помещать генерацию того же исключения в catch)!! Всегда чётко продумывать, что нужно делать с отловленным исключением. Не использовать исключения без острой необходимости. RFTM (2й семестр)…