А вам надоели локализованные ошибки
От: Jack128  
Дата: 30.08.10 08:53
Оценка: 169 (22) +1
по которым ничего не гуглится?

Сам попал с такую ситуацию и вот что нарыл: http://www.unlocalize.com
По локализованному тексту ошибки выдает оригинальный английский текст. Полезнейший ресурс имхо.
Re: А вам надоели локализованные ошибки
От: 0K Ниоткуда  
Дата: 30.08.10 10:53
Оценка: 1 (1) +2 -3
Здравствуйте, Jack128, Вы писали:

J>По локализованному тексту ошибки выдает оригинальный английский текст. Полезнейший ресурс имхо.


Я давно говорил что парадигма обработки ошибок, которую применяет MS, в корне неверная. Исключения предназначенные для разработчиков не нужно переводить.
Re[2]: А вам надоели локализованные ошибки
От: samius Россия http://sams-tricks.blogspot.com
Дата: 30.08.10 11:22
Оценка: 1 (1) +1 :))) :))) :))
Здравствуйте, 0K, Вы писали:

0K>Здравствуйте, Jack128, Вы писали:


J>>По локализованному тексту ошибки выдает оригинальный английский текст. Полезнейший ресурс имхо.


0K>Я давно говорил что парадигма обработки ошибок, которую применяет MS, в корне неверная. Исключения предназначенные для разработчиков не нужно переводить.


Вот что ты говорил по этому поводу не так давно:

Без разницы. Кто говорит по-русском -- тому проще искать на русском.

http://www.rsdn.ru/forum/dotnet/3926085.1.aspx
Автор: 0K
Дата: 19.08.10
Re[2]: А вам надоели локализованные ошибки
От: mrjeka Россия  
Дата: 30.08.10 12:19
Оценка:
Здравствуйте, 0K, Вы писали:

0K>Я давно говорил что парадигма обработки ошибок, которую применяет MS, в корне неверная. Исключения предназначенные для разработчиков не нужно переводить.


У них парадигма одна, они не разделяют и не пытаются разделить исключения на конечных пользователей, что само по себе верно.

Да, им вот заняться нечем, они будут сидеть и анализировать, какие исключения для пользователей, какие для разработчиков.

То, что пользователь увидел текст исключения — это причина того, что программист просто напросто не перехватил это исключение и не обработал.
Re[3]: А вам надоели локализованные ошибки
От: 0K Ниоткуда  
Дата: 30.08.10 20:56
Оценка: -1
Здравствуйте, samius, Вы писали:

S>Вот что ты говорил по этому поводу не так давно:

S>

S>Без разницы. Кто говорит по-русском -- тому проще искать на русском.

S>http://www.rsdn.ru/forum/dotnet/3926085.1.aspx
Автор: 0K
Дата: 19.08.10


Если бы вы были более внимательным, то обратили бы внимание на одну важную вещь: есть исключения только для программистов (ошибка в коде) а есть более предметные: их сообщение выводится пользователю (не только это сообщение (можно добавить пояснение) и не всегда выводится).
Re[3]: А вам надоели локализованные ошибки
От: 0K Ниоткуда  
Дата: 30.08.10 21:00
Оценка: -1 :)
Здравствуйте, mrjeka, Вы писали:

M>У них парадигма одна, они не разделяют и не пытаются разделить исключения на конечных пользователей, что само по себе верно.


Если бы это было верно -- вы бы не ныли сейчас всем хором по поводу сабжа. Если бы все Message нужны были исключительно программисту -- они бы имели называние как ошибки в FxCop -- английские слова без пробелов.

Вы не хотите признать истину, т.к. я не авторитет в ваших глазах. Вот скажет вам об этом MS через год-два -- вспомните мои слова.
Re[3]: А вам надоели локализованные ошибки
От: 0K Ниоткуда  
Дата: 30.08.10 21:03
Оценка: +1 -3
Здравствуйте, mrjeka, Вы писали:

M>То, что пользователь увидел текст исключения — это причина того, что программист просто напросто не перехватил это исключение и не обработал.


Двойка!

Нужно ставить глобальный обработчик (как сделать -- читайте у Рихтера, могу скинуть вам книгу) и ни в коем случае эту ерунду (типа NullRef... или IndexOutOfR...) пользователю не выводите. Просто напишите "Произошла непредвиденная ошибка". Накой ему ваш NullReferenceException??? Накой спрашиваю?
Re[4]: А вам надоели локализованные ошибки
От: SpaceConscience  
Дата: 30.08.10 21:18
Оценка: 1 (1) +1 -1
0K>Нужно ставить глобальный обработчик (как сделать -- читайте у Рихтера, могу скинуть вам книгу) и ни в коем случае эту ерунду (типа NullRef... или IndexOutOfR...) пользователю не выводите. Просто напишите "Произошла непредвиденная ошибка". Накой ему ваш NullReferenceException??? Накой спрашиваю?

А накой ему "непредвиденная ошибка"? Один хрен, в принципе. Но NullReferenceException содержит больше информации, которую пользователь может передать разработчикам. А некоторым пользователям, кстати, впадлу отправить разработчикам автоматический отчет об аварийном завершении, но не впадлу названивать в техподдержку.

Но вообще, я согласен, что программа должна падать настолько цивилизованно, насколько это возможно. Никаких неожиданных мессаджбоксов с сообщениями "Индекс массива имеет недопустимое значение" быть не должно.
Собрался ставить минус? Да сам иди в жопу!

































































.
Re[2]: А вам надоели локализованные ошибки
От: GarryIV  
Дата: 30.08.10 21:38
Оценка:
Здравствуйте, 0K, Вы писали:

J>>По локализованному тексту ошибки выдает оригинальный английский текст. Полезнейший ресурс имхо.


0K>Я давно говорил что парадигма обработки ошибок, которую применяет MS, в корне неверная. Исключения предназначенные для разработчиков не нужно переводить.


В какой библиотеке, в каком фреймворке "верная парадигма обработки ошибок"?
Нет такой? Странно, не правда ли?
WBR, Igor Evgrafov
Re[3]: А вам надоели локализованные ошибки
От: 0K Ниоткуда  
Дата: 30.08.10 21:40
Оценка: :)
Здравствуйте, GarryIV, Вы писали:

GIV>В какой библиотеке, в каком фреймворке "верная парадигма обработки ошибок"?

GIV>Нет такой? Странно, не правда ли?

Нет. Компьютеры и 100 лет не просуществовали. Лет 500-1000 пройдет -- будут правильные парадигмы.
Re[5]: А вам надоели локализованные ошибки
От: 0K Ниоткуда  
Дата: 30.08.10 21:43
Оценка: -1
Здравствуйте, SpaceConscience, Вы писали:

SC>А накой ему "непредвиденная ошибка"? Один хрен, в принципе. Но NullReferenceException содержит больше информации, которую пользователь может передать разработчикам. А некоторым пользователям, кстати, впадлу отправить разработчикам автоматический отчет об аварийном завершении, но не впадлу названивать в техподдержку.


Дык отчет нужно отправлять автоматом и без дампа памяти на 100 Мб.

SC>Но вообще, я согласен, что программа должна падать настолько цивилизованно, насколько это возможно. Никаких неожиданных мессаджбоксов с сообщениями "Индекс массива имеет недопустимое значение" быть не должно.


Вот это другой разговор. А поставил минус на первое ваше сообщение, но здесь вы исправились, по этому ставлю и плюс.
Re[6]: А вам надоели локализованные ошибки
От: SpaceConscience  
Дата: 30.08.10 22:07
Оценка:
0K>Дык отчет нужно отправлять автоматом...

Не имеем права. Отправлять что-то без ведома пользователя — подсудное дело, поэтому все программы всегда про это явно спрашивают.
Собрался ставить минус? Да сам иди в жопу!

































































.
Re[4]: А вам надоели локализованные ошибки
От: mrjeka Россия  
Дата: 31.08.10 07:19
Оценка:
Здравствуйте, 0K, Вы писали:

M>>То, что пользователь увидел текст исключения — это причина того, что программист просто напросто не перехватил это исключение и не обработал.


0K>Двойка!


А с чего это мне двойка??
Я не говорил, что мои пользователи видят тексты сообщений исключений

Это вы пытаетесь всем навязать, что должны быть пользовательские и не пользовательские исключения.
БРЕД!!!

MS не ведет такого разделения. Локализация сообщений исключений делается лишь по тому, что если какой-нибудь программист не поставит обработку исключения (не важна причина), то пользователь увидит сообщение на привычном ему языке.
Re[5]: А вам надоели локализованные ошибки
От: 0K Ниоткуда  
Дата: 31.08.10 07:44
Оценка: -1
Здравствуйте, mrjeka, Вы писали:

M>MS не ведет такого разделения. Локализация сообщений исключений делается лишь по тому, что если какой-нибудь программист не поставит обработку исключения (не важна причина), то пользователь увидит сообщение на привычном ему языке.


И накой оно ему? Все равно ведь ничего ней поймет. Ну выдаст ему "не задана ссылка на объект". Что обычный пользователь их этого поймет? Причем здесь ссылка, если он вообще сайты не открывал и по ссылкам не ходил?

Текст исключений нужно включать в сообщения об ошибках. И они именно для пользователя. Для программиста удобнее как в FxCop -- английские слова без пробелов.

А тут некоторые этой очевидной истины понять не могут, и теперь ноете всем хором -- не понятно зачем переводили Message. Да не для вас переводили. Просто вы его не умеете использовать + MS допустила грубейшую ошибку в проектировании.
Re[6]: А вам надоели локализованные ошибки
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 31.08.10 07:49
Оценка:
Здравствуйте, 0K, Вы писали:

0K>Здравствуйте, mrjeka, Вы писали:


M>>MS не ведет такого разделения. Локализация сообщений исключений делается лишь по тому, что если какой-нибудь программист не поставит обработку исключения (не важна причина), то пользователь увидит сообщение на привычном ему языке.


0K>И накой оно ему? Все равно ведь ничего ней поймет. Ну выдаст ему "не задана ссылка на объект". Что обычный пользователь их этого поймет? Причем здесь ссылка, если он вообще сайты не открывал и по ссылкам не ходил?

А "Object reference is not set to an instance of an object" понятнее?
Непонятное сообщение вообще-то будет непонятным на любом языке.

0K>Текст исключений нужно включать в сообщения об ошибках. И они именно для пользователя. Для программиста удобнее как в FxCop -- английские слова без пробелов.

Если исключение не перехвачено его пользователь увидит. Такова природа исключений.

0K>А тут некоторые этой очевидной истины понять не могут, и теперь ноете всем хором -- не понятно зачем переводили Message. Да не для вас переводили. Просто вы его не умеете использовать + MS допустила грубейшую ошибку в проектировании.

Какую ошибку?
http://files.rsdn.org/67312/MVP_Horizontal_Mini.png
Re[7]: А вам надоели локализованные ошибки
От: 0K Ниоткуда  
Дата: 31.08.10 08:30
Оценка:
Здравствуйте, gandjustas, Вы писали:

0K>>И накой оно ему? Все равно ведь ничего ней поймет. Ну выдаст ему "не задана ссылка на объект". Что обычный пользователь их этого поймет? Причем здесь ссылка, если он вообще сайты не открывал и по ссылкам не ходил?

G>А "Object reference is not set to an instance of an object" понятнее?
G>Непонятное сообщение вообще-то будет непонятным на любом языке.

Куда вам скинуть ссылку на книгу Рихтера? Там написано как делать глобальный обработчик непредвиденных исключений. Нужно написать на языке понятном для пользователя что произошла непредвиденная ошибка. Все остальное вводит его в ступор -- он думает что причина ошибки в его действиях и долго будет думать причем там ссылка, если он сайты вообще не открывал.

0K>>Текст исключений нужно включать в сообщения об ошибках. И они именно для пользователя. Для программиста удобнее как в FxCop -- английские слова без пробелов.

G>Если исключение не перехвачено его пользователь увидит. Такова природа исключений.

Глобальный перехватчик обязан быть в любом приложении.

0K>>А тут некоторые этой очевидной истины понять не могут, и теперь ноете всем хором -- не понятно зачем переводили Message. Да не для вас переводили. Просто вы его не умеете использовать + MS допустила грубейшую ошибку в проектировании.

G>Какую ошибку?

Ошибку в иерархии исключений. Сначала сделали SystemException для системных а ApplicationException для пользовательских. Потом поняли что это бред и сами же нарушили свою иерархию. Но взамен ничего не предложили -- делай кто что хочет.

А с вам говорить буду только после того как вы напишите свой вариант счетчика.
Re[6]: А вам надоели локализованные ошибки
От: mrjeka Россия  
Дата: 31.08.10 08:34
Оценка:
Здравствуйте, 0K, Вы писали:

0K>И накой оно ему? Все равно ведь ничего ней поймет. Ну выдаст ему "не задана ссылка на объект". Что обычный пользователь их этого поймет? Причем здесь ссылка, если он вообще сайты не открывал и по ссылкам не ходил?


Я уж и не знаю как вам объяснить. Основное будет выделено жирным шрифтом (пардон-с)

Пользователь увидел сообщение исключения — программист не обработал исключение
Пользователю сообщение об ошибке ни о чем не говорит — косяк программиста, что первый увидел такое сообщение

0K>Текст исключений нужно включать в сообщения об ошибках. И они именно для пользователя.

Нифига они не для пользователя. Что выводить пользователю решает программист

0K>А тут некоторые этой очевидной истины понять не могут, и теперь ноете всем хором -- не понятно зачем переводили Message. Да не для вас переводили. Просто вы его не умеете использовать + MS допустила грубейшую ошибку в проектировании.


Это вам кажется что это ошибка проектирования. Сообщения локализуют по одной причине — их может увидеть пользователь потому-что их не перехватил разработчик. Претензии к разработчику!!!

Если бы MS была уверена, что все исключения будут перехвачены и обработаны, то она бы не стала заморачиваться с локализацией текстов сообщений.
Re[8]: А вам надоели локализованные ошибки
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 31.08.10 09:03
Оценка:
Здравствуйте, 0K, Вы писали:

0K>Здравствуйте, gandjustas, Вы писали:


0K>>>И накой оно ему? Все равно ведь ничего ней поймет. Ну выдаст ему "не задана ссылка на объект". Что обычный пользователь их этого поймет? Причем здесь ссылка, если он вообще сайты не открывал и по ссылкам не ходил?

G>>А "Object reference is not set to an instance of an object" понятнее?
G>>Непонятное сообщение вообще-то будет непонятным на любом языке.

0K>Куда вам скинуть ссылку на книгу Рихтера?

А ты его сам-то читал?

0K>Там написано как делать глобальный обработчик непредвиденных исключений.

Где? Номер страницы.

Class library developers should not even think about unhandled exceptions. Only application
developers need to concern themselves with unhandled exceptions, and the application
should have a policy in place for dealing with unhandled exceptions. Microsoft actually
recommends that application developers just accept the CLR’s default policy
.


CLR via C#, 3rd edition, страница 500.

Эта краткая цитата опровергает тонны твоего флейма на форуме.

0K>Нужно написать на языке понятном для пользователя что произошла непредвиденная ошибка.

Датыче?
То есть надо предусмотреть локализацию на несколько языков чтоли? Это оправдано для простого сайта?

0K>Все остальное вводит его в ступор -- он думает что причина ошибки в его действиях и долго будет думать причем там ссылка, если он сайты вообще не открывал.

Пользователь это сообщение даже не прочитает.



0K>>>Текст исключений нужно включать в сообщения об ошибках. И они именно для пользователя. Для программиста удобнее как в FxCop -- английские слова без пробелов.

G>>Если исключение не перехвачено его пользователь увидит. Такова природа исключений.
0K>Глобальный перехватчик обязан быть в любом приложении.
Бред. Ты это не сможешь доказать.
Кроме того:

Don’t Catch Everything

CLR via C#, 3rd edition, страница 494.


0K>>>А тут некоторые этой очевидной истины понять не могут, и теперь ноете всем хором -- не понятно зачем переводили Message. Да не для вас переводили. Просто вы его не умеете использовать + MS допустила грубейшую ошибку в проектировании.

G>>Какую ошибку?

0K>Ошибку в иерархии исключений. Сначала сделали SystemException для системных а ApplicationException для пользовательских. Потом поняли что это бред и сами же нарушили свою иерархию. Но взамен ничего не предложили -- делай кто что хочет.

А причем тут иерархия, если любое необработанное исключение, следуя "CLR’s default policy" будет показано пользователю.
Можешь придумывать иерархию хоть до посинения, но если ты неправильно пишешь код, то у тебя вылетит NullReferenceException и его увидит пользователь. А писать глобальный catch для него — неверно. Об этом тебе кто угодно расскажет, в том числе рихтер.

0K>А с вам говорить буду только после того как вы напишите свой вариант счетчика.

Я его вообще-то написал, целых два раза. Ты хоть сам читай тему, которую создал.
http://files.rsdn.org/67312/MVP_Horizontal_Mini.png
Re[8]: А вам надоели локализованные ошибки
От: _FRED_ Россия
Дата: 31.08.10 09:16
Оценка:
Здравствуйте, 0K, Вы писали:

0K>>>… + MS допустила грубейшую ошибку в проектировании.

G>>Какую ошибку?

0K>Ошибку в иерархии исключений. Сначала сделали SystemException для системных а ApplicationException для пользовательских. Потом поняли что это бред и сами же нарушили свою иерархию.


С доказательной частью у вас очень слабовато. Сначала "нарушили", а потом уже "поняли". Посмотрите сами на список унаследованных от ApplicationException классов и увидите много таких, которые были ещё в самом первом фреймворке.

И это вовсе ни какая не фатальная ошибка: просто нужно взглянуть на вопрос под друнгим углом и данная кривизна выпрямится и не будет чесаться.

0K>Но взамен ничего не предложили -- делай кто что хочет.


Это (выделено болдом мной) самое лучшее предложение, которое могло бы быть. Самое гибкое и самое универсальное.

0K>А с вам говорить буду только после того как вы напишите свой вариант счетчика.


Ой, не говори кума, у самой муж пьяница.
Help will always be given at Hogwarts to those who ask for it.
Re[7]: А вам надоели локализованные ошибки
От: _FRED_ Россия
Дата: 31.08.10 09:25
Оценка:
Здравствуйте, mrjeka, Вы писали:

M>Пользователь увидел сообщение исключения — программист не обработал исключение

M>Пользователю сообщение об ошибке ни о чем не говорит — косяк программиста, что первый увидел такое сообщение
M>Это вам кажется что это ошибка проектирования. Сообщения локализуют по одной причине — их может увидеть пользователь потому-что их не перехватил разработчик. Претензии к разработчику!!!

+1

M>Если бы MS была уверена, что все исключения будут перехвачены и обработаны, то она бы не стала заморачиваться с локализацией текстов сообщений.


Многие среды (например, MSSQL) выбрасывают очень разнообразные ошибки. Перпехватывать их все довольно накладно, плюс необходимо учесть и какие-нибудь пользовательские коды. В общем случае, ИМХО, это задача неоправданная, когда как обычные слова "Ошибка при работе с базой данных" пользователя скорее все не удовлетворит: причин может быть много и не только програмист может быть в них повинен (например, пользователю не хватает прав или он просто забыл запустить сервис).

Поэтому ничего страшного в том, что бы показать пользователю текст прилетевшего исключение нет: если уж програмист не знает что делать, может и пользователь сможет исправить ситуацию лучше.

Поэтому "заморачиваться с локализацией текстов сообщений" очень надо. А ужд програмист сам решит, что ему с этой локализацией делать: повеситься или показывать пользователю
Help will always be given at Hogwarts to those who ask for it.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.