169 похожих чатов

Господа, а есть способ на уровне Lua-кода пропатчить паники? Я

догадываюсь о грубейшем способе замены функций error и assert, но это ж прям такое... Нужно просто чтобы при возникновении паники, оно не в stdout уходило, а куда надо нам.

7 ответов

9 просмотров
Денис-Outsider Автор вопроса

Может и в stder, я просто никогад кода выхода не проверял

А может лучше разобраться почему паника возникает в первую очередь? Либо вы интерпретатор корраптите, многопотоком или неправильным обращением к памяти в приложении в целом, либо C API вызывает луа код через lua_call а не lua_pcall в начале Или вы под паникой не это подразумеваете, а просто ошибку?

Денис-Outsider Автор вопроса
UtoECat
А может лучше разобраться почему паника возникает ...

Да, под паникой я подозревал любое возникновение ошибки. Это и error, и assert, и warn

Денис Outsider
Да, под паникой я подозревал любое возникновение о...

Тогда ваш main.lua (или чтобы оно там ни было) вызывайте не напрямую, а через скрипт обёртку ака -- start.lua local stat, msg = xpcall(require, debug.traceback, "main") -- имя скрипта if not stat then print(msg) -- можно и не печатать, а сделать что-то другое с сообщением return -1 end

Денис-Outsider Автор вопроса
UtoECat
Тогда ваш main.lua (или чтобы оно там ни было) выз...

Идея интересная. Спасибо, приму к сведению. Мне, правда, в данном случае нужно просто перехватить ошибки из метатаблиц, плевав на трейсбэки. Но, по сути, никто не мешает завернуть вызов функции, которая дергает все это добро, в xpcall.

Денис Outsider
Идея интересная. Спасибо, приму к сведению. Мне, п...

Если трейсбек не нужен, то просто pcall без аргумента debug.traceback

Денис-Outsider Автор вопроса
UtoECat
Если трейсбек не нужен, то просто pcall без аргуме...

Да-да. Мне нужно просто чтобы ошибка печаталась в поле гуя.

Похожие вопросы

Обсуждают сегодня

Может кто встречал такое? Один набор данных, но в одном столбце кодировка нормальная, а в другом ироглифы. Как такое может быть?
Alexander
23
Всем привет. Подскажите, пожалуйста, почему не ищет русскую букву а? А английскую ищет. Полагаю что-то с кодировкой. Но как исправить это? procedure TfrmMain.btnOpenFileClic...
Евгений
7
И к какой архитектуре привязана Java?
Dmitry Olshansky
17
коллеги, добрый вечер! А никто не знает как модальная форма может себя закрыть? Ну допустим модальная форма определила, что смысла ей работать нет и хочет вернуть modalResult...
Михаил
83
@Aiwan что такое база образца?
Alexey
27
Не многие знают, а кто знает, тот уже успел забыть, что в далёком 2004 году эта игра произвела настоящий фурор, настолько революционной была технология, применяемая для её соз...
ICCID
4
Как это поможет если в архив положили папку?
Sasha Beep
8
Добрый день Хочу начать обучение языку, не являюсь представителем it, буду благодарна за помощь, совсем пока не понимаю ничего) Подскажите, пожалуйста, где можно начать первы...
Sara Lala
30
Хотя у меня сейчас есть более сложная задача, вот её думаю: как объяснить челу переходного возраста противоположного полу, обучающегося в польском колледже (а-ля наш техникум)...
Вячеслав Кузьменко
15
Короче я тут узнал полный пиздец Что кучу постов которые я создавал через posted Спустя время не могу редактировать и менять Мол телега возвращае ошибку Это реально так ...
inc.
13
Карта сайта