Главная · Карта сайта · Поиск · Статьи · Компьютерные курсы · Обучающие программы · Открытые проекты · Веб-программирование · Создание интернет-сайта · Полезные ссылки · Глоссарий · Контакты · Декабрь 09 2016 22:13:41
Последнее опубликованное

Что такое Model-View-Controller
Pattern Model-View-Controller

Как создать свой веб-сайт
Как создать свой сайт в интернете

Разное
Статистика

Программирование на C#. Исключения (try-catch)


[Назад] [Следующая страница]

5.2. Обработка исключительных ситуаций

Исключения в C# обрабатываются с использованием конструкции try-catch. Программный код, исполнение которого может привести к возникновению исключительных ситуаций или ошибок следует помещать в блок try. Блок catch предназначен для самой обработки. Обработка исключительной ситуации обычно содержит инструкции для записи сообщения об ошибке в журнал ошибок приложения. Этот процесс может также сопровождаться выводом сообщения об ошибке на экран. Затем предпринимаются действия, устраняющие последствия исключительной ситуации или же исключение возбуждается вновь, чтобы быть обработанным на другом архитектурном уровне программы. Следует учитывать, что исключительные ситуации, возникающие в ходе выполнения кода блока catch, уже не перехватываются текущим оператором try-catch, поэтому в блоке catch нужно стараться размещать “безопасный” код. Пример самого простого способа обработки исключительной ситуации представлен ниже.

using System;
using System.Windows.Forms;
namespace CSharpQuickGuide
{
    public static class Sample01
    {
        public static void Test()
        {
            //Возбуждается исключение
            //Object reference not set to an instance of an object
            ExceptionSample(null);
            //Исключение не возбуждается
            ExceptionSample("not null"); 
        }
        //Метод, в котором может быть возбуждено исключение
        public static void ExceptionSample(object o)
        {
            try
            {
                //Если o==null, то ошибки не избежать
                MessageBox.Show(o.ToString());
            }
            catch
            {
                //Вывод сообщения об ошибке
                MessageBox.Show("Exception");  
            }
        }
    }
}

Результат работы: последовательное появление сообщений “Exception” и “not null”. Что сразу бросается в глаза – в контексте вызывающего кода (метод Test()) нет ровно никакого способа понять, а что именно произошло? Следующий пример уже лишен этого недостатка:

using System;
using System.Windows.Forms;
namespace CSharpQuickGuide
{
    public static class Sample02
    {
        public static void Test()
        {
            //Возбуждается исключение
            //Object reference not set to an instance of an object
            ExceptionSample(null);
            //Исключение не возбуждается
            ExceptionSample("not null");
        }
        //Метод, в котором может быть возбуждено исключение
        public static void ExceptionSample(object o)
        {
            try
            {
                //Если o==null, то ошибки не избежать
                MessageBox.Show(o.ToString());
            }
            catch (Exception ex)
            {
                //Вывод сообщения об ошибке
                MessageBox.Show(ex.Message, "Exception");
            }
        }
    }
}

Здесь уже последовательно выводятся сообщения “Object reference not set to an instance of an object” и “not null”.



[Назад] [Следующая страница]

Компьютерные курсы и курсы программирования
Основы программирования

Курс для начинающих программистов на C# и VB.NET.

SQL 25™

Построение SQL запросов и работа с базой данных.

C# Quick Guide™

Программирование на C#. Краткое руководство.

RegEx

Применение регулярных выражений.

Plug-in архитектура

Примеры программной Plug-in архитектуры.

XML и его расширения

Язык разметки XML и его расширения с примерами.

HTML и разметка гипертекста

Языки HTML, XHTML и CSS с примерами разметки.

Основы веб-дизайна

Основы веб-дизайна: решения типовых задач верстки.

Программирование на PHP

Руководство по программированию на PHP для начинающих.

Справочные материалы

Шаблоны проектирования
Каталог шаблонов проектирования программных компонентов.

Рефакторинг кода
Каталог приемов рефакторинга программного кода.

Гость
Имя

Пароль



Забыли пароль?
Запросите новый здесь
.
Coding Craft. Все права защищены © 2011. Проект Инициативного Народного Фронта Образования - ИНФО-проект.