| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Форум группы: delphi > Как заставить пользователя читать ошибки? |
| Автор: DarkProg 16.9.2012, 20:11 |
| Вечер добрый. Сижу вот в тысячный раз уже думаю чтобы сделать чтобы пользователи читали ошибки, причём желательно первую ошибку(ну когда появляется сначала одна, потом ещё 1001 связанная с первой и в конце концов когда всё перестаёт работать пользователь удосуживается прочитать чего оно там пишет, только уже это бессмысленно). Я уже сделал глобальный перехват исключений и сделал "перевод" большинства ошибок(про нормальную обработку своих исключений я вообще молчу, есть и всё там по русски написано), но это всё равно не помогает, причём "ОК" жмут все, даже программисты у клиентов (ну они как бы программисты с натяжкой но всё равно) и говорят потом, что вот видите мол ничего не работает... ну понятно что работать после некоторых исключений не будет, даже если есть соответствующие обработчики. Вот, как заставить читать? Я уже в принципе подумывал о совсем страшном варианте в виде своего окна для вывода сообщения об ошибке, только без возможности его закрыть скажем в течение 10 секунд, но мне кажется даже моё начальство такой жестокий метод не одобрит... Кстати был небольшой эксперимент, когда пытался поймать одну ошибку, так вот я вывел такое сообщение "Опачки, а у нас тут ошибка, скажите об этом разработчикам Так вот никто не решал такую проблему глобально или может у кого-то есть какие-то мысли по этому поводу? Я просто запарился видеть уже просто следствие кривизны рук некоторых пользователей и потом "видите оно не работает" а на вопрос "Как оно получилось" они ответить внятно никогда не могут(стэк вызова и прочее не всегда помогают что либо узнать). Выловить плавающую ошибку таким образом ну просто нереально... P.S. блин, ну написал же опять по толстовски, надеюсь что меня поняли |
| Автор: lomaster 16.9.2012, 20:24 |
| А зачем? Вот вы пользователь ОС, много читаете, и помогает? |
| Автор: DarkProg 16.9.2012, 20:44 |
Вообще-то да, особенно если читать слева направо и сверху вниз. |
| Автор: lomaster 16.9.2012, 20:50 | ||
|
| Автор: rodnover 16.9.2012, 21:00 |
| Единственный метод, который у меня удался - записывать все ошибки в лог с точным временем их появления. Одно плохо - последовательность действий, которая этому поспособствовала, я так и не придумал как просто быстро удобно автоматически сохранять, но лог это кушать тоже может при определённых усилиях. Сейчас, кстати, после полутора лет использования, очень редко этот лог приходится читать. |
| Автор: Akella 16.9.2012, 21:22 |
| никак не заставить разве что рублём по карману Добавлено через 27 секунд не прочитал - потерял данные - следующий раз будет умнее, сам виноват |
| Автор: rodnover 17.9.2012, 07:43 | ||||
Начальству не выгодно штрафовать работников за ошибки программиста (так, как не посуди, ошибка в проге - ошибка программиста и не важно штатного или нет.)
Вариант, конечно, опасный со стороны матов пользователей, но, если начальство действенное и заинтересовано в безбажности, поможет. Просто, при возникновении таких ситуаций полностью блочить работу программы. Пусть тут же идут и жалуются - у них процесс стоять будет и им деваться некуда сами начнут расписывать что и когда щелкнули, а программисту на руку, что не молчат. |
| Автор: Akella 17.9.2012, 12:59 |
| Автор: rodnover 17.9.2012, 19:36 |
Thanks. Запятые поправил. |
| Автор: bems 20.9.2012, 04:33 |
| Я тоже за логи. Читать глазами слишком сложна для такой важной птицы как любимая секретутка местного босса |
| Автор: DarkProg 20.9.2012, 17:16 | ||
Ну и смысл мне с лога, где будет написано что кому-то там вылезло сообщение, типа "Вы не заполнили поле "какое-то там""? Т.е. у меня сама ошибка обработана, это теперь пользователю надо, либо что-то нажать, либо что-то заполнить, либо позвонить админам местным и узнать что за фигня с сервером творится. Я же не предлагаю ему исправлять мои ошибки. Причём я даже в сообщении пишу кому звонить(только из-за того что клиентов много нельзя указать номера телефонов кому звонить)! |
| Автор: Frees 28.9.2012, 12:52 |
| Чтобы текст ошибки прочитали (с большей вероятностью) он должен быть короткий 3-4 слова. |
| Автор: DarkProg 28.9.2012, 15:16 | ||
Ну в целом верно, только так частенько не выходит :( |
| Автор: Frees 28.9.2012, 16:41 |
А кто сказал что будет легко... http://usethics.ru/blog/lib/vis/ |
| Автор: DarkProg 28.9.2012, 17:08 |
Да, никто не говорил, я просто уже намучался с этими пользователями... |
| Автор: AVX 9.11.2012, 05:21 |
| DarkProg, это кривизна рук разработчика. Зачем ты напрягаешь пользователя своими ошибками? Пиши, то что тебе нужно, в лог, а пользователю дай возможность нормально выполнять свою задачу. А вообще выбрось ему что-то вроде такого ![]() чтобы он прочитал и хорошенько поразмыслил над своим поступком.. да и вообще над жизнью |
| Автор: bems 9.11.2012, 06:17 |
| AVX, как дать пользователю выполнять свою задачу когда он неправильно заполнил поля формы? я вижу тут только способ вывести сообщения "поле СУММА содержит неверное значение МНОГО, введите туда число" |
| Автор: AVX 9.11.2012, 10:04 | ||
В качестве бест практики в таком случае используется валидация. то есть не правильно заполненные поля подсвечиваются красной рамкой а кнопка "ок" не активна, пока все поля не заполнены корректно. Естественно, бывают случаи когда мы можем провести полную проверку валидности только при соединении с неким источником, например БД. В таком случае красную рамку с сообщением нужно показать после нажатия кнопки "ок". Сообщение, в этом случае, пользователю тоже стоит показать, но читать ему его будет необязательно, он прочитает его красным шрифтом возле красной рамочки. ![]() ![]() ![]() |
| Автор: bems 9.11.2012, 10:18 |
| то есть твой ответ на вопрос темы, это "показывать его красным шрифтом возле красной рамочки" ну да, это же всё меняет |
| Автор: AVX 9.11.2012, 10:35 | ||||
Ты считаешь что это
и описанное мной выше имеют много общего? Это концептуально другой подход, и в этом случае не возникает проблем с пользователем и ему удобно. Ему сразу подсвечивается поле, где он ввёл некорректное значение и описание. Согласись, что это во много раз удобней, чем читать сухой текст в окошке и напрягать себя мыслями о том, где была допущена ошибка. Добавлено через 4 минуты и 15 секунд Кроме того, мы делаем неактивной кнопку продолжения, что собственно всё таки заставит ввести пользователя корректное значения в поле. Надо понимать, что в пользователя в данный момент, когда он вводит данные в поля, может быть ещё 10 дел на уме, поставьте себя на его место. Так что считаю, что в данном случае виноват не пользователь, а навыки разработки приложений ТС нуждаются в развитии |
| Автор: bems 9.11.2012, 10:57 |
| Я считаю что есть категория пользователей, которая категорически ничего не читает. Ты описал всем давно изместные вещи, никак не решающие проблему сообщений. Еще считаю что то что ты говоришь это то же самое сообщение, которое не будет прочитано. А про неактивную кнопку, ну естественно так надо делать когда это возможно, но эта кнопка вызовет подробнейший багрепорт из трех слов "ничего не работает". |
| Автор: AVX 9.11.2012, 11:58 | ||||
А какой по твоему пользователю нужен багрепорт, такой? ![]() Как раз в данном случае и получается визуальный багрепорт, где часто и читать то ничего не надо, с одного взгляда можно понять что не так. Я в общем то не претендовал на новизну, я просто указал ТС на классический вариант.
При данном подходе недовольных пользователей становится на порядок меньше (в моём случаи их вообще нет). Я так понимаю ТС пытается засунуть некорректные данные в БД, или куда то в этом роде, а потом обрабатывает ексепшены? Если так, то это мягко говоря очень криворукий способ. Я понимаю что иногда другой возможности нет, но такой подход нужно свести к минимуму. |
| Автор: bems 9.11.2012, 12:12 | ||
уже второй раз лепишь сообщение о повреждении памяти. ты думаешь с первого раза никто не заметил? оно предназначено для разработчика, и до релиза такие ошибки просто не доходят
Добавлено через 29 секунд впрочем, может в дотнете всё действительно так сложно с контролами, хотя не должно бы... |
| Автор: AVX 9.11.2012, 12:23 | ||||
ты даже не поленился порыть мои сообщения? приветствую пользователей сотни, а ты видимо утверждаешь что то, как делает ТС более правильно?
ты не понял что это сарказм? |
| Автор: bems 9.11.2012, 12:39 |
год назад. для тебя год это много? тогда мои подозрения подтверждаются oh tell me more ага, повторенный дважды |
| Автор: AVX 9.11.2012, 12:46 |
ты к http://forum.vingrad.ru/forum/topic-338407.html сообщению прикопался? я не собираюсь тебе больше ничего говорить, если тебя удивляет что софт разрабатывается для сотен пользователей, то уж прости ты так и не ответил |
| Автор: bems 9.11.2012, 12:53 |
нет, сам этот факт для меня не нов, меня удивляет что с твоих слов ты имеешь к этому какое-то отношение так за год и не прозрел? пропертё есть для этого. ну по крайней мере в дельфи. думаю в дотнете не сложнее. ну какие сотни юзеров после этого? второй курс отсилы а что он делает? выводит сообщения? так и ты предлагаешь выводить. ну про красный шрифт который меняет ситуацию в корне я учту |
| Автор: AVX 9.11.2012, 13:05 | ||||
В прочем если бы узнал что ты имеешь какое то отношение к разработки UI, я бы ничуть не удивился. Я видел много программ, которые то и делают, что выбрасывают страшные ексепшены с непонятным текстом и сопровождаются матами пользователей. А вот что ты имеешь какое то отношение к разработке качественно UI сомневаюсь. В прочем меня твоё удивление мало интересует, так как при надобность я могу показать как выглядит софт, в разработке UI которого я смогу доказать свой непосредственный вклад. А вот сможет ли это сделать ты?
это похоже на высказывание с попыткой оскорбить, но ни как на |
| Автор: bems 9.11.2012, 13:10 |
| какое оскорбить? я тебе говорю свойство есть для этого. делается в одну строчку (ну пусть две) люди занимающиеся этим профессионально умеют читать хелп. |
| Автор: AVX 9.11.2012, 13:15 | ||
может тогда скажешь что за свойство? |
| Автор: bems 9.11.2012, 13:28 |
| RowSelect в wpf может как-то подругому, но наверняка не сложнее |
| Автор: AVX 9.11.2012, 13:37 |
Ты действительно думаешь что целый подраздел форума не нашёл бы это свойство, если бы оно было? В общем то его чисто с концептуальной точки зрения даже не должно существовать. А тебе не стоит упрекать в вещах, в которых не разбираешься |
| Автор: bems 9.11.2012, 14:07 | ||
| я не знаю что там думал подраздел форума, и что там думали авторы wpf но в проводнике стандартный нативный контрол для которого это делается в одну строку
|
| Автор: Akella 9.11.2012, 16:11 | ||
Показывать кнопку ОК через 10 секунд после показа окна с ошибкой. |
| Автор: DarkProg 11.11.2012, 17:33 |
Ахахаха Я пролистал тут тему(я как-то решил что разговор утих сам собой и поэтому не вчитывался) и скажу так, что пользователю при некоторых видах ошибок, типа потеря связи с сервером или БД вообще не получится что либо делать, а понять это они не могут(или я как программист не могу с этим ничего поделать), в виду кривости реализации отдельных компонентов или моментов отловить эту дурную ошибку нельзя... ну это так чисто моё лирическое отступление(самое худшее когда подобные хитрые ошибки вызывают другие ошибки, которые интерпретируются неправильно, например когда сбоит сеть у людей я вижу иногда конфликт транзакций, хотя такого быть не может, но такая ошибка на экране есть). Есть ещё много чего что могу рассказать, в таком духе... я чем дальше работаю, тем меньше смеюсь над шуткой "Чем более интуитивно понятный интерфейс создаёт программист, тем более тупого пользователя рождает мир" - наболело, извините... Я отмечу тему решённой, так как уже вынес полезный урок отсюда. |