Форум: "Прочее";
Текущий архив: 2011.11.27;
Скачать: [xml.tar.bz2];
ВнизTRegisry. Найти похожие ветки
← →
Германн © (2011-07-30 01:29) [0]и его "странности"
Все (или почти все) функции TRegistry.Readххх вызывают исключения, если что не так. Окромя TRegistry.ReadString. А вот зачем такая разница между функциями одной группы?
Вопрос в целом риторический.
← →
Marser © (2011-07-30 01:42) [1]Вот уж сколько лет, как ушёл в .NET, а щас залез и глянул - ReadString юзает GetData, которое выбрасывает следующий экспшн прямо в коде
raise ERegistryException.CreateResFmt(@SRegGetDataFailed, [Name]);
Кагбэ вот :-)
← →
Германн © (2011-07-30 02:34) [2]
> Marser © (30.07.11 01:42) [1]
Тёзка, сам я пока не проверял. Но хелп от Д6 и от Д2007 говорит несколько иное.
← →
Германн © (2011-07-30 02:41) [3]То бишь, все прочие Readxxx вызывают исключение, если такого параметра нет, а ReadString вызывает исключение только тогда, когда такой параметр есть, но его содержимое не есть "строка".
Во всех прочих случаях, если верить справке, ReadString вернёт пустую строку не возбудив исключения.
← →
DVM © (2011-07-30 10:46) [4]
> Германн © (30.07.11 02:41) [3]
Мне кажется, что это как то связано с COM
← →
_Юрий (2011-07-30 10:59) [5]Пустая строка - это по сути тот же null
У интов, булеанов и прочих флоатов такого значения нет.
Думаю, поэтому
← →
Anatoly Podgoretsky © (2011-07-30 11:25) [6]Потому что nil (пустая строка) и ее надо иметь возможность присваивать. Для чисел таких возможностей и нужды нет
← →
tesseract © (2011-07-30 16:03) [7]
> Все (или почти все) функции TRegistry.Readххх вызывают исключения,
> если что не так.
Капитан очевидность подсказывает что это не баг, а фича - я бы пляски устроил если бы в 1с была нормальная обработка исключений.
← →
Германн © (2011-07-31 00:27) [8]
> Капитан очевидность подсказывает что это не баг, а фича
Может быть это действительно фича. Но я её смысл полностью так и не понял.
Т.е. почему всё-таки решено было не возбуждать исключение в ReadString, если такого параметра в данном ключе реестра нет? Какая разница какого типа этот параметр? Для всех прочих вызывается, а для строк нет.
Почему в ReadString задумано исключение в том случае, "если значение данного параметра не является строкой" несколько более понятно. Но тоже не совсем. Что значит "не является строкой"?
← →
Юрий Зотов © (2011-07-31 01:46) [9]> Что значит "не является строкой"?
Имеет тип, отличный от REG_SZ
← →
Германн © (2011-07-31 02:04) [10]
> Юрий Зотов © (31.07.11 01:46) [9]
>
> > Что значит "не является строкой"?
>
> Имеет тип, отличный от REG_SZ
А что значит "имеет тип"?
И что значит REG_SZ?
← →
Германн © (2011-07-31 02:12) [11]
> Юрий Зотов © (31.07.11 01:46) [9]
Ещё раз подчёркиваю, что сей вопрос(топик) скорее риторический. Для его решения есть функция ValueExists.
Просто хотелось узнать то ли я настолько дурак (или настолько устарел), то ли... не знаю чего-то.
← →
Anatoly Podgoretsky © (2011-07-31 10:02) [12]> Германн (31.07.2011 00:27:08) [8]
Отсутствие строки, это по сути пустая строка.
← →
Dimka Maslov © (2011-07-31 11:05) [13]Надо пользоваться Вынь-АПИ. Там исключения вообще не генерируются.
← →
Юрий Зотов © (2011-07-31 11:09) [14]
> Германн © (31.07.11 02:04) [10]
> А что значит "имеет тип"?
> И что значит REG_SZ?
Запусти RegEdit.
← →
DVM © (2011-07-31 22:09) [15]
> Dimka Maslov © (31.07.11 11:05) [13]
> Там исключения вообще не генерируются.
генерируются
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2011.11.27;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.003 c