parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Считаю, что ^throw[] вполне достаточно

moko 11.05.2021 17:39

Из консоли парсерные скрипты запускаются достаточно редко, а в случае CGI безусловный выход будет приводить к 500-ой ошибке - заголовки все равно надо вывести. Поэтому ^throw[], который можно по своему вкусу обработать в @unhandled_exception - правильный вариант остановки выполнения скрипта.

Пример из жизни: после выдачи редиректа обычно уже ничего не надо делать, для чего бывает требуется делать проверки, усложнять логику работы, да и баги бывают, если забыть поставить проверку. Поэтому на одном проекте редирект был реализован через ^throw[].
@redirect[sUrl;sType]
^throw[redirect;^if($sType eq external){^self.serverURI[]}$sUrl]

...

#Далее в глобальном catch или в @unhandled_exception:

^if($exception.type eq 'redirect'){
      $response:location[^taint[as-is;$exception.source]]
      ...
}