PL Perl  ·  25 вопросов  ·  ~70 мин  ·  ⏱ Таймер 10:00  ·  Средний  · 

Исключения и eval

Практические задания по теме «Исключения и eval» требуют сопоставить несколько решений, найти источник ошибки и оценить последствия выбранного подхода. В тесте 25 вопросов: код нужно не только читать, но и трассировать, проверять на отказ, сопоставлять несколько правдоподобных решений. Ровно 15 заданий содержат фрагменты Perl; остальные проверяют выбор подхода в реальной ситуации. Если в условии не сказано иначе, предполагаются современный Perl 5.40+, strict и warnings; внешние модули рассматриваются в указанном контексте.

Отвечено: 0 из 25
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 25 вопросов отведено 70 минут. В каждом вопросе верен только один вариант. После завершения откроются общий результат, оценки по 5 тематическим шкалам и подробный разбор.
Вопрос 1 из 25
Как точнее всего описать действие фрагмента с `$_` и `parse`?
PerlОшибки выполнения
sub parse { die "bad input
" unless $_[0] =~ /:/; return 1 }
eval { parse('x') };
say $@;
Вопрос 2 из 25
Какое описание не теряет важный побочный эффект участка с `risky`, `cleanup` и `log_error`?
PerlСостояние ошибки в переменной $@
eval { risky() };
cleanup();
if ($@) { log_error($@) }
Вопрос 3 из 25
Какое описание не теряет важный побочный эффект участка с `$err`, `$_` и `risky`?
PerlОбработка ошибок с Try::Tiny
use Try::Tiny;
try { risky() } catch { my $err=$_; warn $err };
Вопрос 4 из 25
Какой вывод следует непосредственно из операций примера «Границы обработки»?
PerlГраницы обработки
eval { parse($row); store($row) };
if ($@) { warn 'skip' }
Вопрос 5 из 25
Не запуская фрагмент «Читаемость решения», выберите точное описание его работы.
PerlЧитаемость решения
eval { open my $fh,'<',$p or die "open: $!"; decode($fh) };
Вопрос 6 из 25
Какое скрытое допущение ломает контракт примера «Ошибки выполнения»?
PerlОшибки выполнения
eval 'system($user_text)';
Вопрос 7 из 25
Что в этом коде нарушает ожидаемое поведение?
PerlСостояние ошибки в переменной $@
eval { risky() };
if ($@ =~ /timeout/) {
    retry_request();
}
Вопрос 8 из 25
Какой отказ объясняется показанным кодом, а не внешней системой?
PerlОбработка ошибок с Try::Tiny
try { return compute() } catch { return fallback() };
Вопрос 9 из 25
Где находится первопричина возможного сбоя в коде с `@rows` и `process_entire_batch`?
PerlГраницы обработки
eval { process_entire_batch(@rows) };
Вопрос 10 из 25
Какую границу автор фрагмента «Читаемость решения» не учёл?
PerlЧитаемость решения
die 'Error';
Вопрос 11 из 25
Как показанная редакция «Ошибки выполнения» делает контракт проверяемым?
PerlОшибки выполнения
my $ok = eval { parse($text); 1 };
if (!$ok) {
    my $error = $@;
    report_error($error);
}
Вопрос 12 из 25
Как правка с `$ok`, `$err` и `risky` меняет поведение на неудобном входе?
PerlСостояние ошибки в переменной $@
my $ok = eval { risky(); 1 };
my $err = $@;
cleanup();
handle($err) unless $ok;
Вопрос 13 из 25
Что изменилось в работе фрагмента «Обработка ошибок с Try::Tiny»?
PerlОбработка ошибок с Try::Tiny
my $value;
try { $value=compute() } catch { $value=fallback($_) };
return $value;
Вопрос 14 из 25
Почему новая версия с `$row`, `@rows` и `$ok` устраняет исходный дефект?
PerlГраницы обработки
for my $row (@rows) { my $ok=eval { my $v=parse($row); store($v); 1 }; handle_row_error($row,$@) unless $ok }
Вопрос 15 из 25
Как исправленный код с `%s`, `$p` и `$err` сохраняет исходное назначение?
PerlЧитаемость решения
die sprintf('decode %s: %s', safe_name($p), $err);
Вопрос 16 из 25
Какое правило отделяет семантику Perl от случайно удачного запуска?
Вопрос 17 из 25
Что является главным ориентиром при работе с «Состояние ошибки в переменной $@»?
Вопрос 18 из 25
Какой общий принцип темы «Обработка ошибок с Try::Tiny» переносится на другие программы?
Вопрос 19 из 25
Какое положение темы «Границы обработки» помогает выбрать надёжную реализацию?
Вопрос 20 из 25
Какой общий принцип темы «Читаемость решения» переносится на другие программы?
Вопрос 21 из 25
Какое ограничение блока «Ошибки выполнения» следует проверять отдельным примером?
Вопрос 22 из 25
Какое ограничение блока «Состояние ошибки в переменной $@» следует проверять отдельным примером?
Вопрос 23 из 25
Какой предел гарантий блока «Обработка ошибок с Try::Tiny» остаётся в силе после успешного запуска?
Вопрос 24 из 25
Что важно отдельно проверить при переносе приёма «Границы обработки» в рабочий код?
Вопрос 25 из 25
Какое различие в механизме «Читаемость решения» чаще всего теряют при обобщении?

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

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

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

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