Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Visual Basic: Общие вопросы > Сообщения об ошибках в MsgBox


Автор: BlackSun 30.05.20, 08:56
В каком случае принято показывать тип vbCritical, в каком vbExclamation? Если юзер неверно ввёл вход. данные и операция отменяется, какой тип правильно показывать?

Автор: Akina 30.05.20, 10:34
vbCritical показывается в случае, когда сложившаяся ситуация препятствует дальнейшей работе. vbExclamation - когда дальнейшая нормальная работа возможна после исправления.

Например, идёт ввод реквизитов для совершения платежа. Если указанный платёж не может быть совершён по введённой карте - это vbExclamation, а если указанный платёж не может быть совершён по карте вообще - это vbCritical.

Автор: BlackSun 30.05.20, 11:44
т.е. vbCritical - это всё, приплыли! сушите вёсла, сэр?... Дело в том, что лично я воспринимаю воскл. знак как некоторое предупреждение, что я мол сделаю работу (программа), но возможны какие-то проблемы (предупреждение)... А vbCritical визуально воспринимается как крах, и где-то в одной книжке читал, что нормальная работа программы далее невозможна (что автор имел ввиду, так и не понял до конца). В целом, у меня всегда возникал этот вопрос, воскл. знак не уместен в некоторых ситуациях, vbCritical воспринимается как что-то страшное пользователем, чуть ли не нарушение работы компа/программы... Хоть бери и делай свой MsgBox со своими нестандартными(!) картинками. Т.е. до сих пор у меня нет чёткого понимания и восприятия этих знаков предупреждения. vbCritical ещё бывает вылетает с диким визгом в некоторых прогах, стоит ли его ещё озвучивать? )

Добавлено
Цитата Akina @
а если указанный платёж не может быть совершён по карте вообще - это vbCritical.
Значит, платёж м.б. совершён другим способом, а это просто исправление, т.е. vbExclamation?

Автор: BlackSun 30.05.20, 14:16
А какие знаки надо показывать, например, при ошибке чтения файла/записи в файл?

Автор: Akina 30.05.20, 17:24
Цитата BlackSun @
какие знаки надо показывать, например, при ошибке чтения файла/записи в файл?

Смотря какая ошибка опять же. Если файл нельзя записать, потому что он уже существует - vbExclamation, а если потому, что в указанном каталоге нет прав на создание файла - чистый vbCritica.

Автор: B.V. 01.06.20, 05:46
Не соглашусь с тобой, Akina. vbCritical, он же MB_ICONSTOP, что, по-моему, красноречиво намекает, всё-таки для тех случаев, когда ошибка не совместима с продолжением исполнения текущей задачи. Проверка доступа это первый шаг, вполне возвратный и не приводящий к полной отмене сохранения.

Автор: Akina 01.06.20, 07:41
Цитата B.V. @
vbCritical, он же MB_ICONSTOP, что, по-моему, красноречиво намекает, всё-таки для тех случаев, когда ошибка не совместима с продолжением исполнения текущей задачи. Проверка доступа это первый шаг, вполне возвратный и не приводящий к полной отмене сохранения.

То есть это зависит от среды исполнения? Если можно изменить права доступа или каталог сохранения - то оно по смыслу vbExclamation, а если нет, то vbCritical, так? ну я ж об этом и говорю...

Цитата B.V. @
Проверка доступа это первый шаг, вполне возвратный и не приводящий к полной отмене сохранения.

А если для такой проверки (и корректировки) надо выгрузить приложение? и после корректировки запустить его заново? вот нет другого пути...

В любом случае - выбор основывается на ощущениях. Нет жёсткого правила...

Автор: B.V. 01.06.20, 16:10
Цитата Akina @
Если можно изменить права доступа или каталог сохранения - то оно по смыслу vbExclamation, а если нет, то vbCritical, так? ну я ж об этом и говорю...

В целом, так. STOP это уже когда всё, приплыли.. в рамках одной конкретной задачи. По крайней мере, так я всегда видел логику этой иконки :)

Цитата Akina @
А если для такой проверки (и корректировки) надо выгрузить приложение? и после корректировки запустить его заново? вот нет другого пути...

Ну если при перезагрузке не будут теряться данные, то это не остановка задачи, а необходимый этап, и тут уже уместней не пугать юзера vbCritical-ом, а умеренно-напрячь vbExclamation-ом

Автор: BlackSun 04.06.20, 21:04
Так тут же зависит от юзера, сможет ли он изменить права доступа или нет. Программа же не может знать, кто ею пользуется. Т.е. для кого-то это vbCritical, а для кого-то нет? Вообще, если прога пишет данные в каталог(и его подкаталоги) где сама находится, могут возникнуть какие-то проблемы с правами?

Вы действительно разбираете ошибку по кодам, чтобы только показать более подходящую иконку? Я пишу "Ошибка записи в файл" и добавляю в сообщение Err.Description. Поэтому мне нужен более общий показ иконки.

Автор: B.V. 05.06.20, 01:20
Цитата BlackSun @
Вообще, если прога пишет данные в каталог(и его подкаталоги) где сама находится, могут возникнуть какие-то проблемы с правами?

Могут.

Цитата BlackSun @
Вы действительно разбираете ошибку по кодам, чтобы только показать более подходящую иконку?

Детализация ошибок вообще хороший тон, и разработчику проще и юзеру понятнее

Автор: BlackSun 04.07.20, 20:12
При удалении записи лучше пугать vbExclamation или таки vbQuestion ("Желаете удалить запись?")?

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)