Ответ
MoKo 21.10.2015 02:05
Такое ощущение, что эти два вида $exception писали разные люди
Да нет, PAF это примерно в одно время все написал:
http://cvsview.parser.ru/cgi/viewcvs.cgi/parser3/src/main/pa_request.C?r1=1.247&r2=1.248Как тут выше справедливо заметили, чтобы появился $.file, надо чтобы код выполнялся. Сейчас запись в логе примерно одинаковая получается, а про различия в структуре Exception думаю PAF не подумал, да и до вас мало кто внимание обращал. :) Попробовал "обмануть" систему:
compile.C
- throw Exception("parser.compile",
- 0,
- "%s(%d:%d): %s", file_list[file_no].cstr(), 1+pc.pos.line, 1+pc.pos.col, pc.error);
+ exception_trace.push(Trace(&String::Empty, Operation::Origin::create(file_no, pc.pos.line, pc.pos.col)));
+ throw Exception("parser.compile", 0, "%s", pc.error);
Оно работает, но потом эта пустая строка появляется. Подумаю, может получится это обойти - этот код плохо покрыт тестами, не хочется баг посадить...
- Вопрос про $exception, Maxx [M] 20.10.2015 18:28 / 20.10.2015 18:36
- Ответ, MoKo 22.10.2015 12:29
- Ответ, Maxx [M] 22.10.2015 14:28
- Ответ, moko [M] 23.10.2015 14:57
- Ответ, MoKo 21.10.2015 02:05
- Ответ, allex_by 20.10.2015 19:06