Язык скриптования сайтов Parser 3

       

Opthrow


throw. Сообщение об ошибке


^throw[type;source]

^throw[type;source;comment]

Оператор throw сообщает об ошибке типа type, произошедшей по вине source, с комментарием comment.

Эта ошибка может быть перехвачена и обработана при помощи оператора try.

Не перехватывайте ошибки только для их красивого вывода, пусть этим централизованно займется метод unhandled_exception, вызываемый Parser если ни одного обработчика ошибки так и не будет найдено. Кроме прочего, произойдет запись в журнал ошибок веб-сервера, который можно регулярно просматривать на предмет имевших место проблем.



Пример

@method[command]

^switch[$command]{

   ^case[add]{

      добавляем…

   }

   ^case[delete]{

      удаляем…

   }

   ^case[DEFAULT]{

      ^throw[bad.command;$command;Wrong command $command, good are add&delete]

   }

}

@main[]

$action[format c:]

^try{

   ^method[$action]

}{

   ^if($exception.type eq bad.command){

      $exception.handled(1)

      Неправильная команда '$exception.source', задана

      в файле $exception.file, в $exception.lineno строке.

   }

}

Результатом работы примера будет

Неправильная команда 'format c:', задана 

в файле c:/parser3tests/www/htdocs/throw.html, в 15 строке.

Обращаем ваше внимание на то, что пользователи вашего сайта не должны увидеть технические подробности в сообщениях об ошибках, тем более содержащие пути к файлам, это некрасиво и ненадежно.

Вывод $exception.file дан в качестве примера и настоятельно не рекомендуется к использованию на промышленных серверах - только для отладки.



Содержание раздела