.
Visual C# для чайников. Урок 9. Обработка исключений. Продолжение.
Автор megabax   
12.01.2012 г.
В этой статье я постараюсь максимально просто и понятно изложить основы программирования на языке Delphi

Visual C# для чайников. Урок 9. Обработка исключений. Продолжение.

На прошлом уроке мы начали изучать обработку исключений. Сегодня мы продолжим тему. Пример прошлого урока имеет один небольшой недостаток: если мы вместо числа введем буквы, то наша программа завершиться со страшным сообщением:

Visual C# для чайников. Урок 9. Обработка исключений. Продолжение.

Что бы при неверном вводе (буква вместо цифры) программа выдавала осмысленное сообщение об ошибке, перепишем у нее функцию main:

        static void Main(string[] args)

        {

            try

            {

                Console.Write("x=");

                int x = int.Parse(Console.ReadLine());

                Console.Write("y=");

                int y = int.Parse(Console.ReadLine());

                Console.Write("z=");

                int z = int.Parse(Console.ReadLine());

                M2(x, y, z);

            }

            catch(Exception ex)

            {

                Console.WriteLine("Исключение "+ex.GetType().Name+" "+ex.Message);

            }

            Console.ReadLine();

        }

как видим, мы просто тупо взяли кусок программы в try ... catch. теперь при ошибочном вводе она будет ругаться вот так:

Visual C# для чайников. Урок 9. Обработка исключений. Продолжение.

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

            Console.Write("Введите число от 1 до 10 ");

            int x = int.Parse(Console.ReadLine());

            if (x < 1 || x > 10) throw new ArgumentOutOfRangeException("Число должно быть от 1 до 10!!! ");

            Console.ReadLine();

Выполняя данные строки, программа вывалится со страшным сообщением, если пользователь введет число не от 1 до 10:

Visual C# для чайников. Урок 9. Обработка исключений. Продолжение.

Разумеется, если эти строки находятся в какой либо функции, то его так же можно "перехватить", поместив эту функцию в try ... catch:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace ConsoleApplication1

{

 

 

    class Program

    {

        static void Proba()

        {

            Console.Write("Введите число от 1 до 10 ");

            int x = int.Parse(Console.ReadLine());

            if (x < 1 || x > 10) throw new ArgumentOutOfRangeException("Число должно быть от 1 до 10!!! ");

        }

 

        static void Main(string[] args)

        {

            try

            {

                Proba();

            }

            catch (ArgumentOutOfRangeException e)

            {

                Console.Write("Исключительная ситуация: "+e.Message);

            }

            Console.ReadLine();

        }

    }

}

И вот результат работы программы, если пользователь введет число не из диапазона:

Visual C# для чайников. Урок 9. Обработка исключений. Продолжение.

 

 

(С) Шуравин Александр

 

Последнее обновление ( 27.05.2014 г. )