Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю - Страница 156
- Предыдущая
- 156/642
- Следующая
Изменить размер шрифта:
156
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
HelpLink
По умолчанию значением свойства
HelpLink
Car.Accelerate()
public void Accelerate(int delta)
{
if (_carIsDead)
{
Console.WriteLine("{0} is out of order...", PetName);
}
else
{
CurrentSpeed += delta;
if (CurrentSpeed >= MaxSpeed)
{
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
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)
{
Console.WriteLine("{0} has overheated!", PetName);
CurrentSpeed = 0;
_carIsDead = true;
// Использовать ключевое слово throw для генерации
// исключения и возврата в вызывающий код.
throw new Exception($"{PetName} has overheated!")
156
- Предыдущая
- 156/642
- Следующая
Перейти на страницу: