Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.01.13;
Скачать: [xml.tar.bz2];

Вниз

исключение не ловится :(   Найти похожие ветки 

 
Alexis   (2003-12-25 18:53) [0]

Допустим, в ключе HKey_Local_Machine\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer значение "NoDrives" Reg_Binary, а не Reg_Dword, как обычно.Мне надо прочесть из него значение, используя обработку исключения.
Вот код:

procedure TForm1.Button1Click(Sender: TObject);
var r:TRegistry;k:integer;
begin
r:=TRegistry.Create;
r.RootKey:=HKey_Current_User;
r.OpenKey("Software\Microsoft\Windows\CurrentVersion\Policies\Explorer",false);
try
k:=r.ReadInteger("NoDrives");
showmessage("NoDrives value= "+inttostr(k));
except on ERegistryException do
showmessage("NoDrives contains not integer value");
end;

end;

Что не так? При запуске showmessage не срабатывает, все-равно вылазит исключение ERegistryException, но ведь я его обрабатываю!

Благодарю.


 
Тимохов   (2003-12-25 19:02) [1]

Ты пройдись отладчиком и удостоверься, что исключение происходит именно на строке k:=r.ReadInteger("NoDrives");, а не раньше.


 
Alexis   (2003-12-25 19:24) [2]

Именно на этой! Может надо в Classes описание исключения добавить?


 
panov   (2003-12-25 19:32) [3]

При запуске showmessage не срабатывает

Который showmessage?


 
Тимохов   (2003-12-25 19:35) [4]

Я не поленился - проверил, этот код отрабатывает у меня как надо. У тебя ошибка не в этом try except, а где-то еще. Где? Ищи.


 
Alexis   (2003-12-25 19:39) [5]

У тебя в разделе Uses все стандартное, дополнительных модулей не используешь?

2panov-ни тот, ни другой


 
Юрий Зотов   (2003-12-25 19:44) [6]

> Alexis

Запускаете программу из-под Delphi или автономно?


 
Тимохов   (2003-12-25 19:45) [7]

Не использую.
Еще может быть ошибка в том (хотя я совсем не уверен), что у тебя есть другой класс ERegistryException и именно он имеется здесь в виду.


 
Alexis   (2003-12-25 19:50) [8]

И как же отловить это исключение?

2Юрий Зотов-и так, и так фигня получается-оба раза Error.


 
Тимохов   (2003-12-25 19:59) [9]

Напиши просто

except
showmessage("NoDrives contains not integer value");
end;

будет в этом случае видно сообщение "NoDrives contains not integer value"?


 
Alexis   (2003-12-25 20:19) [10]

Вообще не компилирует.

procedure TForm1.Button1Click(Sender: TObject);
var r:TRegistry;k:integer;
begin
r:=TRegistry.Create;
r.RootKey:=HKey_Current_User;
r.OpenKey("Software\Microsoft\Windows\CurrentVersion\Policies\Explorer",false);
k:=r.ReadInteger("Nodrives");
showmessage("NoDrives contains "+inttostr(k));
except (ошибка тут)
showmessage("Nodrives is not integer type data!");
end;

end;

END expected but EXCEPT found


 
Тимохов   (2003-12-25 20:26) [11]

try где?


 
Юрий Зотов   (2003-12-25 20:28) [12]

И что-то Free тоже не видно.


 
Alexis   (2003-12-25 20:37) [13]

Исправил. Но один фиг не обрабатывает исключения:

procedure TForm1.Button1Click(Sender: TObject);
var r:TRegistry;k:integer;
begin
r:=TRegistry.Create;
r.RootKey:=HKey_Current_User;
r.OpenKey("Software\Microsoft\Windows\CurrentVersion\Policies\Explorer",false);
try
k:=r.ReadInteger("Nodrives");
showmessage("NoDrives contains "+inttostr(k));
except
showmessage("Nodrives is not integer type data!");
end;

end;

Помогите, plz...


 
Zelius   (2003-12-25 20:45) [14]

попробуй запустить программу не из под дельфов или убрать галку "stop on delphi exceptions"


 
Alexis   (2003-12-25 21:00) [15]

2Zelius - спасибо, все нормально работает.Но при запуске кода из Delphi все равно не обрабатывается исключение :( , хотя должно!

Хотелось бы все же выяснить, почему?
P.S.Где эта опция-stop on delphi exceptions (сорри, что-то не нашел)


 
Юрий Зотов   (2003-12-25 21:14) [16]

> Alexis © (25.12.03 21:00) [15]

Зачем Вы, извините, пудрите людям мозги с несуществующей проблемой?

В [6] я Вас спросил: "Запускаете программу из-под Delphi или автономно"?

В [8] Вы мне ответили: "и так, и так фигня получается-оба раза Error".

И, извините, соврали. ЗАЧЕМ?

У Вас все работает так, как и должно работать. Если не считать утечки памяти - но это уже другая проблема.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.01.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.009 c
3-37569
bon
2003-12-15 10:43
2004.01.13
Query


1-37700
Frogkiller
2003-12-25 22:52
2004.01.13
Ошибка при запуске потока


1-37664
Vitalik
2003-12-26 15:59
2004.01.13
VirtualStringTree


1-37609
Alexander_spb
2003-12-28 15:43
2004.01.13
TCanvas


14-37916
Undert
2003-12-20 23:08
2004.01.13
!!! Предложение !!!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский