ТОИ-ТОИ Белсансист
Гродненец
 Репутация: +4/-0
Offline
Сообщений: 162
Я люблю Гродненский форум!
|
 |
« : 03 Август 2008, 23:17:17 » |
|
Есть ли в Delphi функция перехвата ошибок и пропуска их... (знаю что в VB есть функция on error resume next)
|
|
|
Записан
|
|
|
|
coolasm
|
|
|
|
Записан
|
HTTP Error 404 - File or directory not found.
|
|
|
|
coolasm
|
Нет, это не оброботка исключений, это скорее пример рекурсии
|
|
|
Записан
|
HTTP Error 404 - File or directory not found.
|
|
|
Demik
Ты бЛондинКо - йА админ, Тибя много - йА адзын . Ты на кАпсЕ - я пАцтуЛом, щОлкну мышкой +1 :)
Кандидат в депутаты
   Репутация: +703/-18
Offline
Пол: 
Сообщений: 3492
В России 2 беды,причем 1я постоянно ремонтирует 2ю
|
насколько я помню (давно в Делфи не работал) я так делал: Try {Твой код всунь сюда} exception {Сюда прога зайдет когда возникнет ошибка в коде между try и except} GetLastError(Переменная-номер ошибки, если надо); SetLastError(NoError); end; Вот и всего делов то 
|
|
|
Записан
|
|
|
|
Gloomy Fox
Гродненец
 Репутация: +43/-0
Offline
Пол: 
Сообщений: 296
to live is to die
|
Try {Твой код всунь сюда} exception {Сюда прога зайдет когда возникнет ошибка в коде между try и except} GetLastError(Переменная-номер ошибки, если надо); SetLastError(NoError); end; Перемешал тут мухи с котлетами... Если уж использовать try...except, то и ошибки обрабатывать надо средствами языка а не Win32. Т.е. получается что-то вроде: try {some code} except on E: Exception do ShowMessage(E.ClassName+' raised exception: '+E.Message); end;
|
|
« Последнее редактирование: 06 Август 2008, 11:25:55 от GlFox »
|
Записан
|
|
|
|
stan
Гость
|
Хм... А юзать гугл не судьба? Вообще если вопросы такого уровня задаешь, то тебе сюда, ИМХО идеальный сайт по делфи. Вот развернутый ответ на твой вопрос.
|
|
« Последнее редактирование: 06 Август 2008, 18:23:03 от stan »
|
Записан
|
|
|
|
_SworD_
|
to GlFox
Exception, например при работе с БД, не очень помогает, т.к. не полность есть реализация. Было время я его наверно весь перерыл (класс). Это я к тому, что без on E: Exception do можно иногда и обойтись. А иногда просто выбора нет тоon E: Exception do автоматически не расматривается.
|
|
|
Записан
|
|
|
|
Demik
Ты бЛондинКо - йА админ, Тибя много - йА адзын . Ты на кАпсЕ - я пАцтуЛом, щОлкну мышкой +1 :)
Кандидат в депутаты
   Репутация: +703/-18
Offline
Пол: 
Сообщений: 3492
В России 2 беды,причем 1я постоянно ремонтирует 2ю
|
Try {Твой код всунь сюда} exception {Сюда прога зайдет когда возникнет ошибка в коде между try и except} GetLastError(Переменная-номер ошибки, если надо); SetLastError(NoError); end; Перемешал тут мухи с котлетами... Если уж использовать try...except, то и ошибки обрабатывать надо средствами языка а не Win32. Т.е. получается что-то вроде: try {some code} except on E: Exception do ShowMessage(E.ClassName+' raised exception: '+E.Message); end; я не перемешал мухи и котлеты. Вопрос не стоит об обработке исключений. человеку нужно пропуститьь ошибку, если она возникла. Чем конструкция плохая? А те знакома ситуация когда вылетела ошибка в проекте, а в исключении написано "No error"?
|
|
|
Записан
|
|
|
|
Gloomy Fox
Гродненец
 Репутация: +43/-0
Offline
Пол: 
Сообщений: 296
to live is to die
|
Exception, например при работе с БД, не очень помогает, т.к. не полность есть реализация. Было время я его наверно весь перерыл (класс). Это я к тому, что без on E: Exception do можно иногда и обойтись. А иногда просто выбора нет тоon E: Exception do автоматически не расматривается. Не совсем понял мысль, но как-нибудь отвечу. Если мне надо было отслеживать именно ошибки при работе с БД то я писал так: try {some DB operations} except on E: EIBError do sErrMsg:=E.Message; end; Как видно, здесь просто выщемляются эксцепшены от IBX, а на остальные плевать. Имеет смысл иногда отлавливать ошибки конкретного типа, чтобы внятно известить юзера, чего случилось, или записать в лог. я не перемешал мухи и котлеты. Вопрос не стоит об обработке исключений. человеку нужно пропуститьь ошибку, если она возникла. Чем конструкция плохая? А те знакома ситуация когда вылетела ошибка в проекте, а в исключении написано "No error"? Если ему плевать, что там за ошибка, то его может устроить и блок try...finally, а если уж смотреть, что за исключение, то функции GetLastError() SetLastError() мало чем помогут, поскольку они относятся к Win32 API и нифига толкового не покажут, если исключение возникло в компоненте по причинам не зависящим от операционки (типа "index out if bounds" или "not valid какое-то value"). Т.е. я имел ввиду, что использование этих функций может иметь смысл только при отлове ошибок во время работы с Win API.
|
|
|
Записан
|
|
|
|
agent007
Гость
|
Как реализовать такую чтуку: Есть edit1 и button1, так вот надо(делфи 6) чтобы при нажатии копки прога проверяла совпадает ли пароль, если да, то уже на другую форму... а если нет выход и всё!!?
|
|
|
Записан
|
|
|
|
agent007
Гость
|
Может наконец кто-нибудь поможет? 
|
|
|
Записан
|
|
|
|
VooDoo
|
так а в чём проблема? тебе код нужен или объяснить как делать?
|
|
|
Записан
|
Are you human? - My body is. Do you feel pain? - My body does. ..- --- --- -.. --- ---
|
|
|
agent007
Гость
|
так а в чём проблема? тебе код нужен или объяснить как делать?
Лучше код, просто алгоритм я знаю, а как реализовать в delphi (6, тому что для 7 есть в сети урок)
|
|
|
Записан
|
|
|
|
_SworD_
|
так а в чём проблема? тебе код нужен или объяснить как делать?
Лучше код, просто алгоритм я знаю, а как реализовать в delphi (6, тому что для 7 есть в сети урок) Чето не понял я вопроса. Че код перенести не можешь?
|
|
|
Записан
|
|
|
|
agent007
Гость
|
так а в чём проблема? тебе код нужен или объяснить как делать?
Лучше код, просто алгоритм я знаю, а как реализовать в delphi (6, тому что для 7 есть в сети урок) Чето не понял я вопроса. Че код перенести не можешь? Какой код? Чета не видел я где это написано как решить мою задачу без Password Dialog?
|
|
« Последнее редактирование: 10 Сентябрь 2008, 23:14:35 от АгенТ007 »
|
Записан
|
|
|
|
VooDoo
|
блин... вообще нифига не понял... какой едит, какой пассворд диалог... чуваг, можешь нормально описать, что тебе надо сделать?
|
|
|
Записан
|
Are you human? - My body is. Do you feel pain? - My body does. ..- --- --- -.. --- ---
|
|
|
agent007
Гость
|
блин... вообще нифига не понял... какой едит, какой пассворд диалог... чуваг, можешь нормально описать, что тебе надо сделать?
Я так понимаю что вы нифига не поняли, а ведь я задал вопрос не смотря на название темы(дабы не создовать новую тему форума) А нужен мне код чтобы при нажатии копки прога проверяла совпадает ли пароль в текстовом поле и если совпадает то на другую форму!
|
|
|
|
coolasm
|
If (Edit1.Text=password) OpenForm(); else Form1.Close();
|
|
|
Записан
|
HTTP Error 404 - File or directory not found.
|
|
|
VooDoo
|
|
|
|
Записан
|
Are you human? - My body is. Do you feel pain? - My body does. ..- --- --- -.. --- ---
|
|
|
agent007
Гость
|
Кароче всем спастба, но я сам разобрался ( а не получалось из-за кавычек)
|
|
|
Записан
|
|
|
|
RILLey_ELf
Гость
|
мозг разорван
|
|
|
Записан
|
|
|
|
coolasm
|
АгенТ007, поделись исходником, возможно у когонить тоже такие проблемы возникнут
|
|
|
Записан
|
HTTP Error 404 - File or directory not found.
|
|
|
VooDoo
|
сомневаюсь
|
|
|
Записан
|
Are you human? - My body is. Do you feel pain? - My body does. ..- --- --- -.. --- ---
|
|
|
agent007
Гость
|
АгенТ007, поделись исходником, возможно у когонить тоже такие проблемы возникнут
А чё тут писать, очень похоже на исходник от collasm: if edit1.Text='1234' then form3.show else form4.show;
|
|
|
Записан
|
|
|
|
coolasm
|
А чего пароль не зашифрован?
|
|
|
Записан
|
HTTP Error 404 - File or directory not found.
|
|
|
iddqd
|
патамучто зашить пароль тупо в экзэшнике равнасильно сказать иво сразу фсем 
|
|
|
Записан
|
|
|
|
|