C# C#  ·  20 вопросов  ·  ~55 мин  ·  ⏱ Таймер 55:00  ·  Средний  · 

Исключения и освобождение ресурсов

Проверяет исключения и владение ресурсами: порядок catch/finally, сохранение стека, фильтры, using, IDisposable и асинхронное освобождение. Сценарии требуют отличать обработанную ошибку от скрытой и выбирать границу, на которой сбой действительно можно исправить.

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 20 вопросов отведено 55 минут. В заданиях с кодом учитывайте указанную конструкцию и не додумывайте отсутствующие условия. После завершения откроются общий результат, тематические шкалы и разбор каждого ответа.
Вопрос 1 из 20
Почему catch (Exception) должен идти после catch (FormatException)?
C#
try { Parse(input); }
catch (FormatException ex) { HandleBadFormat(ex); }
catch (Exception ex) { HandleUnexpected(ex); }
Вопрос 2 из 20
Чем throw; отличается от throw ex; внутри catch?
C#
catch (Exception ex)
{
    logger.LogError(ex, "failed");
    throw;
}
Вопрос 3 из 20
Когда exception filter when полезен?
Вопрос 4 из 20
Какой подход лучше для ожидаемо неверного пользовательского числа?
Вопрос 5 из 20
Какая строка получится после перехвата FormatException и продолжения выполнения?
C#
try { _ = int.Parse("x"); }
catch (FormatException) { Console.Write("caught"); }
Console.Write("done");
Вопрос 6 из 20
Выполнится ли finally при return из try?
C#
static int M()
{
    try { return 1; }
    finally { Console.Write("F"); }
}
Вопрос 7 из 20
Когда finally может не выполниться?
C#
try
{
    Environment.FailFast("fatal");
}
finally
{
    Console.WriteLine("cleanup");
}
Вопрос 8 из 20
Почему опасно бросать новое исключение из finally?
Вопрос 9 из 20
Какой порядок вывода?
C#
try { Console.Write("T"); }
finally { Console.Write("F"); }
Вопрос 10 из 20
Что лучше для простого IDisposable-ресурса?
Вопрос 11 из 20
Когда вызовется Dispose у using declaration?
C#
using var stream = File.OpenRead(path);
ReadHeader(stream);
ReadBody(stream);
// Dispose в конце текущего блока
Вопрос 12 из 20
Что делает Dispose?
C#
using var stream = File.OpenRead(path);
ReadHeader(stream);
// Dispose будет вызван при выходе из области.
Вопрос 13 из 20
Как освобождать IAsyncDisposable?
C#
await using var connection = await OpenAsync();
await connection.SendAsync(data);
Вопрос 14 из 20
В каком порядке освобождаются вложенные using?
Вопрос 15 из 20
Нужно ли вручную Dispose сервис, полученный из DI-контейнера?
Вопрос 16 из 20
Когда отдельный InsufficientBalanceException оправдан?
Вопрос 17 из 20
Зачем передавать исходное исключение как innerException?
C#
catch (SqlException ex)
{
    throw new OrderStorageException(orderId, ex);
}
Вопрос 18 из 20
Какое базовое исключение выбрать для недопустимого значения аргумента?
Вопрос 19 из 20
Что следует хранить в пользовательском исключении?
Вопрос 20 из 20
Когда лучше вернуть Result/ошибку как значение, а не бросать?

Ответьте на все 20 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу