Учебно-методический комплекс общее количество часов 58 ч. Лекции 28 ч
Download 2.46 Mb.
|
Язык программирования C#
13.4. Выброс исключений
До сих пор мы обрабатывали исключения, которые уже были сгенерированы (выброшены) библиотечными методами. Но иногда бывает необходимо выбросить объект некоторого исключения самому, чтобы его можно было в последующем обработать. Для генерации (выброса) исключения используется ключевое слово throw. Общий формат его использования представлен на следующей схеме. throw объект_исключения; После выброса исключения оно должно быть обработано где-то выше по стеку вызовов, т.е. нормальное выполнение программы будет прервано до тех пор, пока не встретиться try-catch блок, способный обработать выброшенное исключение. Для иллюстрации применения выброса исключений приведем следующий простой пример. Мы создаем форму регистрации в Интернет казино, и в ней пользователь должен ввести свой настоящие имя и фамилию. В самом простом случае ни имя, ни фамилия не могут содержать небуквенные символы. Есть много способов проверки ввода на правильность, но мы совместим метод регистрации с методом проверки на правильность и в случае неправильных данных будем генерировать исключение. class Program { static void Register(string Name, string FamilyName) { for (int i = 0; i < Name.Length; i++) if (!Char.IsLetter(Name, i)) throw new ApplicationException(); for (int i = 0; i < FamilyName.Length; i++) if (!Char.IsLetter(FamilyName, i)) throw new ApplicationException(); Console.WriteLine("Регистрация прошла успешно!"); } static void Main(string[] args) { string Name, FamilyName; Console.Write("Имя: "); Name = Console.ReadLine(); Console.Write("Фамилия: "); FamilyName = Console.ReadLine(); try
Register(Name, FamilyName); } catch (ApplicationException) { Console.WriteLine("Ошибка при регистрации!"); } } } Лист. 4.5 Наибольший интерес в этом листинге для нас представляет метод Register. Ему передаются два параметра: имя и фамилия клиента, далее этот метод проверяет параметры на релевантность и если они не верны, то генерирует исключение и прекращает свое выполнение, а если верны, выводит сообщение об успешной регистрации. Метод Main приглашает пользователя ввести имя и фамилию, а затем передает эти данные методу Register. Вызов метода Register находится в защищенном блоке и в случае генерации исключения в качестве реакции на неверные данные, оно будет обработано и будет выведена соответствующая ошибка. Пример вывода программы при двух различных запусках. Имя: Иван Фамилия: Иванов Регистрация прошла успешно! Имя: Nyk0r Фамилия: D00M Ошибка при регистрации! Вывод. 4.4 В этом примере мы использовали стандартный тип исключений, но в реальных приложениях в подобных случаях лучше использовать свой собственный тип исключений. Download 2.46 Mb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling