|
Вывод текста ошибки
|
|||
---|---|---|---|
#18+
Уважаемые коллеги Уже много лет использую следующий паттерн кода при сохранении объекта: s sc=obj.%Save() if sc'=1 w $System.OBJ.DisplayError(sc) Ну вместо write могу еще что-нибудь с этим текстом делать, но суть не в этом. В Cache2012 это неожиданно перестало работать. Вызов w $System.OBJ.DisplayError(sc) почему-то вместо диагностики ошибки возвращает 1, если объект не сохраняется. Кто-нибудь может что-то посоветовать? Я делал полнотекстовый поиск по форуму, увидел, что servit пишет $system.OBJ.DisplayError(sc) (с маленькой буквы), правда сам еще не пробовал. В этом всё дело? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2012, 07:54 |
|
Вывод текста ошибки
|
|||
---|---|---|---|
#18+
Код: plaintext
а такой вывод и правильно должен выводить 1, так как согласно документации авторDecode and display an object error message to the console. If err is omitted, display the last generated object error. означает, что данная команда декодирует переданную ошибку, и выводит в стандартный поток в консоль, если ошибку не передали то он возбмет последнюю объектную ошибку т.е. из переменной %objlasterror а вот 1 это статус выполнения этой команды соответвенно нужно либо выполнять так Код: plaintext
Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2012, 09:58 |
|
Вывод текста ошибки
|
|||
---|---|---|---|
#18+
EvLaUyЯ делал полнотекстовый поиск по форуму, увидел, что servit пишет $system.OBJ.DisplayError(sc) (с маленькой буквы), правда сам еще не пробовал. В этом всё дело?Нет, дело не в маленькой букве. Можно ссылку, где я пишу w $System.OBJ.DisplayError(sc), а не d $System.OBJ.DisplayError(sc)? В Вашем случае достаточно do $System.OBJ.DisplayError(obj.%Save()). PS: для проверки статуса всё же лучше использовать вполне документированные макросы ISERR(sc)/ISOK(sc) . ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2012, 10:04 |
|
Вывод текста ошибки
|
|||
---|---|---|---|
#18+
Нет, нет, servit, что Вы, Вы везде вызываете этот метод через do. Я просто до сих пор не знал, что для этого метода разница стала принципиальна. Я пользовался им для вывода текста ошибки года эдак с 2003, и всё работало как часы. А вчера часов около 2 ночи обнаружил вот такую неприятность (видимо, до этого в Cache2012 у меня все объекты сохранялись без ошибок). Ну расстроился, конечно, а покопаться в Class Reference уже не было сил. Спасибо за помощь обоим откликнувшимся участникам. Значится, для вывода текста ошибки этот метод уже бесполезен. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2012, 10:28 |
|
Вывод текста ошибки
|
|||
---|---|---|---|
#18+
Виноват, не для вывода, а для сохранения в переменной. А то попаду под огонь критики. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2012, 10:32 |
|
Вывод текста ошибки
|
|||
---|---|---|---|
#18+
EvLaUyЯ просто до сих пор не знал, что для этого метода разница стала принципиальна.Метод работает абсолютно одинаково что в версии 5.0.x, что в версии 2012.2 и ничего в нём не менялось. Проверил на версии 5.0.21: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2012, 10:45 |
|
Вывод текста ошибки
|
|||
---|---|---|---|
#18+
EvLaUyЯ просто до сих пор не знал, что для этого метода разница стала принципиальна. Я пользовался им для вывода текста ошибки года эдак с 2003, и всё работало как часы. Значится, для вывода текста ошибки этот метод уже бесполезен. Огня вам не миновать. Любой метод что-нибудь делает и возвращает результат. DisplayError продолжает работать, как работал и предназначен для (вы не поверите) вывода ошибки. Все остальное можно списать на ваше состояние в два часа ночи. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2012, 10:46 |
|
Вывод текста ошибки
|
|||
---|---|---|---|
#18+
EvLaUy, Код: php 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2012, 11:38 |
|
Вывод текста ошибки
|
|||
---|---|---|---|
#18+
doublefint, авторDisplayError продолжает работать, как работал и предназначен для (вы не поверите) вывода ошибки. Ну непреодолимое желание у некоторых людей обязательно "вставить шпильку". Что-то с логикой у Вас не так. Сначала я ошибочно написал, что метод бесполезен для вывода ошибки. Потом сам же поправился, т.е. моя поправка как раз означала, что для вывода ошибки он ПРЕДНАЗНАЧЕН, а не предназначен для сохранения текста ошибки в переменной. Я поблагодарил людей за помощь и посчитал проблему закрытой. Вы же ломитесь в открытую дверь, вторично заявляя, что метод предназначен для вывода ошибки, припиисывая мне, что я это якобы отрицаю. Где Вы увидели повод поязвить? У Вас, наверное, всегда всё работает с первого раза, и Вы никогда не ошибаетесь. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2012, 11:47 |
|
|
start [/forum/topic.php?fid=39&msg=38073606&tid=1557285]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
151ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 253ms |
total: | 503ms |
0 / 0 |