parser

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

 

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

Через try-throw нормальный варант...

Sumo 04.02.2014 16:53 / 04.02.2014 18:14

Тут есть тонкий момент. Когда вы хотите «прервать выполнение скрипта в определенном месте» это означает лишь, «выдать в stdout то, что уже сформировано скриптом (например, заголовки) и вернуть управление веб-серверу». Это совершенно не тоже самое, что делает вызов функции exit в других языках.

С траем все очень просто:
@main[]
  ^try{
     ...
     ^if(!$user.isAdmin && $request:uri eq "admin"){
       ^redirectTo[/]
     }
  }{
     ^if($exception.type eq "site.redirect"){
       $exception.handled(true)
       $response:location[$exception.source]
     }
   }

@redirectTo[aLocation]
  ^throw[site.redirect;$aLocation]