Лишний end вижу.
Можно. Конструкция try except.
Точнее... Возможно, вру. Загуглил и не нашёл, как это сделано в lua, может, как-то иначе.
Обработка ошибок точно реализрвана Дурманом в скриптах мода NHF. Попробуйте скачать и посмотреть, как там. Но try вероятно используется.