Учебно-методический комплекс общее количество часов 58 ч. Лекции 28 ч


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


Download 2.46 Mb.
bet60/91
Sana19.10.2023
Hajmi2.46 Mb.
#1709453
TuriУчебно-методический комплекс
1   ...   56   57   58   59   60   61   62   63   ...   91
Bog'liq
Язык программирования C#

13.5. Создание и выброс собственных типов исключений

Все типы исключений в среде CLR являются производными от класса System.Exception. Они наследуют от него либо напрямую, либо через его потомков. Для того, чтобы создать собственный тип исключения нужно определить класс производный от System.Exception или от какого-либо его потомка. В производном классе нужно переопределить несколько перегруженных конструкторов наследуемых от System.Exception, и по необходимости добавить нужные члены, хотя добавлять собственные члены требуется редко.


Приведем пример простейшего пользовательского класса исключения, напрямую наследующего от System.Exception, и переопределяющего все необходимые конструкторы. Этот класс можно использовать, как шаблон для создания собственных исключений достаточно только изменить его имя.
public class InvalidPasswardException : Exception
{
public InvalidPasswardException() { }
public InvalidPasswardException(string message) { }
public InvalidPasswardException(string message, System.Exception inner) { }

// Этот конструктор переопределяем для сереализации


protected InvalidPasswardException(System.Runtime.Serialization.SerializationInfo info,
System.Runtime.Serialization.StreamingContext context) { }
}
Лист. 4.6

Рассмотрим листинг. В нем мы определили простейшее пользовательское исключения с именем InvalidPasswardException.


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


class Program


{

static string Password = "Password";


static void LogIn(string Pass)

{
if (Pass == Password)


Console.WriteLine("Вы идентифицированы.");
else
{
InvalidPasswardException ex;

ex = new InvalidPasswardException();


throw ex;
}
}
static void Main(string[] args)
{
string Password;
Console.Write("Пароль:");
Password = Console.ReadLine();
try

{
LogIn(Password);


}

catch (InvalidPasswardException)


{
Console.WriteLine("Не правильный пароль.");


}
}
}

Лист. 4.7


Приведенная программа запрашивает у пользователя пароль и передает его в метод идентификации LogIn. Этот метод уже обрабатывает ввод пользователя нужным образом.


Вывод программы при разных вводах.

Пароль:Password


Вы идентифицированы.


Пароль:sad


Не правильный пароль.


Вывод. 4.5





Download 2.46 Mb.

Do'stlaringiz bilan baham:
1   ...   56   57   58   59   60   61   62   63   ...   91




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling