Язык программирования C#9 и платформа .NET5. Страница 155
Console.WriteLine("\n*** Error! ***"); // ошибка Console.WriteLine("Method: {0}", e.TargetSite); // метод Console.WriteLine("Message: {0}", e.Message); // сообщение Console.WriteLine("Source: {0}", e.Source); // источник}// Ошибка была обработана, выполнение продолжается со следующего оператора.Console.WriteLine("\n***** Out of exception logic *****");Console.ReadLine();По существу блок
trycatchtrycatch***** Simple Exception Example *****=> Creating a car and stepping on it!Jamming...=> CurrentSpeed = 30=> CurrentSpeed = 40=> CurrentSpeed = 50=> CurrentSpeed = 60=> CurrentSpeed = 70=> CurrentSpeed = 80=> CurrentSpeed = 90=> CurrentSpeed = 100*** Error! ***Method: Void Accelerate(Int32)Message: Zippy has overheated!Source: SimpleException***** Out of exception logic *****Как видите, после обработки исключения приложение может продолжать свое функционирование с оператора, находящегося после блока
catchВыражение throw (нововведение в версии 7.0)
До выхода версии C# 7 ключевое слово
throwthrowКонфигурирование состояния исключения
В настоящий момент объект
System.ExceptionAccelerate()MessageExceptionTargetSiteStackTraceHelpLinkDataСвойство TargetSite
Свойство
System.Exception.TargetSiteTargetSiteTargetSiteSystem.Reflection.MethodBasecatch// Свойство TargetSite в действительности возвращает объект MethodBase.catch(Exception e){ Console.WriteLine("\n*** Error! ***"); Console.WriteLine("Member name: {0}", e.TargetSite); // имя члена Console.WriteLine("Class defining member: {0}", e.TargetSite.DeclaringType); // класс, определяющий член Console.WriteLine("Member type: {0}", e.TargetSite.MemberType); Console.WriteLine("Message: {0}", e.Message); // сообщение Console.WriteLine("Source: {0}", e.Source); // источник}Console.WriteLine("\n***** Out of exception logic *****");Console.ReadLine();На этот раз в коде используется свойство
MethodBase.DeclaringTypeSimpleException.CarMemberTypeMethodBasecatch*** Error! ***Member name: Void Accelerate(Int32)Class defining member: SimpleException.Car
Перейти на страницу:
Изменить размер шрифта: