» » » » Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю

На нашем литературном портале можно бесплатно читать книгу Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю, Троелсен Эндрю . Жанр: Базы данных. Онлайн библиотека дает возможность прочитать весь текст и даже без регистрации и СМС подтверждения на нашем литературном портале litmir.org.
Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
Название: Язык программирования C#9 и платформа .NET5
Дата добавления: 22 август 2024
Количество просмотров: 172
Читать онлайн

Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних просмотр данного контента СТРОГО ЗАПРЕЩЕН! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту readbookfedya@gmail.com для удаления материала

Язык программирования C#9 и платформа .NET5 читать книгу онлайн

Язык программирования C#9 и платформа .NET5 - читать бесплатно онлайн , автор Троелсен Эндрю

В 10-м издании книги описаны новейшие возможности языка C# 9 и .NET 5 вместе с подробным "закулисным" обсуждением, призванным расширить навыки критического мышления разработчиков, когда речь идет об их ремесле.

Книга охватывает ASP.NET Core, Entity Framework Core и многое другое наряду с последними обновлениями унифицированной платформы .NET, начиная с улучшений показателей производительности настольных приложений Windows в .NET 5 и обновления инструментария XAML и заканчивая расширенным рассмотрением файлов данных и способов обработки данных.

Все примеры кода были переписаны с учетом возможностей последнего выпуска C# 9.

Перейти на страницу:

Member type: Method

Message: Zippy has overheated!

Source: SimpleException

Свойство StackTrace

Свойство System.Exception.StackTrace позволяет идентифицировать последовательность вызовов, которая в результате привела к генерации исключения. Значение данного свойства никогда не устанавливается вручную — это делается автоматически во время создания объекта исключения. Чтобы удостовериться в сказанном, модифицируйте логику в блоке catch:

catch(Exception e)

{

  ...

  Console.WriteLine("Stack: {0}", e.StackTrace);

}

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

Stack: at SimpleException.Car.Accelerate(Int32 delta)

in [путь к файлу]car.cs:line 57 at <Program>$.<Main>$(String[] args)

in [путь к файлу]Program.cs:line 20

Значение типа string, возвращаемое свойством StackTrace, отражает последовательность вызовов, которая привела к генерации данного исключения. Обратите внимание, что самый нижний номер строки в string указывает на место возникновения первого вызова в последовательности, а самый верхний — на место, где точно находится проблемный член. Очевидно, что такая информация очень полезна во время отладки или при ведении журнала для конкретного приложения, т.к. дает возможность отследить путь к источнику ошибки.

Свойство HelpLink

Хотя свойства TargetSite и StackTrace позволяют программистам выяснить, почему возникло конкретное исключение, информация подобного рода не особенно полезна для пользователей. Как уже было показано, с помощью свойства System.Exception. Message можно извлечь читабельную информацию и отобразить ее конечному пользователю. Вдобавок можно установить свойство HelpLink для указания на специальный URL или стандартный справочный файл, где приводятся более подробные сведения о проблеме.

По умолчанию значением свойства HelpLink является пустая строка. Обновите исключение с использованием инициализации объектов, чтобы предоставить более интересное значение. Ниже показан модифицированный код метода Car.Accelerate():

public void Accelerate(int delta)

{

  if (_carIsDead)

  {

    Console.WriteLine("{0} is out of order...", PetName);

  }

  else

  {

    CurrentSpeed += delta;

    if (CurrentSpeed >= MaxSpeed)

    {

(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})

      CurrentSpeed = 0;

      _carIsDead = true;

      // Использовать ключевое слово throw для генерации.

      // исключения и возврата в вызывающий код

      throw new Exception($"{PetName} has overheated!")

      {

        HelpLink = "http://www.CarsRUs.com"

      };

    }

    Console.WriteLine("=> CurrentSpeed = {0}", CurrentSpeed);

  }

}

Теперь можно обновить логику в блоке catch для вывода на консоль информации из свойства HelpLink:

catch(Exception e)

{

  ...

  Console.WriteLine("Help Link: {0}", e.HelpLink);

}

Свойство Data

Свойство Data класса System.Exception позволяет заполнить объект исключения подходящей вспомогательной информацией (такой как отметка времени). Свойство Data возвращает объект, который реализует интерфейс по имени IDictionary, определенный в пространстве имен System.Collections. В главе 8 исследуется роль программирования на основе интерфейсов, а также рассматривается пространство имен System.Collections. В текущий момент важно понимать лишь то, что словарные коллекции позволяют создавать наборы значений, извлекаемых по ключу. Взгляните на очередное изменение метода Car.Accelerate():

public void Accelerate(int delta)

{

  if (_carIsDead)

  {

    Console.WriteLine("{0} is out of order...", PetName);

  }

   else

  {

    CurrentSpeed += delta;

    if (CurrentSpeed >= MaxSpeed)

    {

(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})

      Console.WriteLine("{0} has overheated!", PetName);

      CurrentSpeed = 0;

      _carIsDead = true;

      // Использовать ключевое слово throw для генерации

      // исключения и возврата в вызывающий код.

      throw new Exception($"{PetName} has overheated!")

Перейти на страницу:
Комментариев (0)