Skip to content

RU CSharp Exceptions

Codex edited this page Oct 11, 2026 · 2 revisions

Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

Исключения, try/catch/finally и throw

Руководство C# · Примеры UO

try ограничивает защищённый участок, catch обрабатывает подходящее исключение, finally выполняет очистку при выходе. Фильтр when выбирает обработчик. throw; повторно бросает текущее исключение, сохраняя исходный стек; throw exception; изменяет его начало.

Простой пример (Example.cs)

Сохраните этот пример отдельно как Example.cs. Запускайте его независимо от остальных примеров страницы.

Example.cs:

// PROJECT-EXAMPLE
try { int.Parse("not a number"); }
catch (System.FormatException) { System.Console.WriteLine("Invalid"); }

Результат:

Invalid
try
{
    int value = int.Parse("not a number");
    UO.Print(value.ToString());
}
catch (FormatException error)
{
    UO.Print(error.Message);
}
finally
{
    // Dispose resources owned by this scope.
}
int RequirePositive(int value)
{
    if (value <= 0) throw new ArgumentOutOfRangeException(nameof(value));
    return value;
}
UO.Print(RequirePositive(3).ToString());

Не перехватывайте отмену без намерения завершить сценарий. Очистка должна освобождать собственные ресурсы; отменённый игровой вызов в finally может снова бросить исключение. Ошибка компиляции обнаруживается до запуска и не является обычной ошибкой внутри try выполняемого кода.

Официальная документация: Исключения, try/catch/finally и throw — Microsoft Learn.

Clone this wiki locally