реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Необработанное исключение
_Артём_
сообщение Apr 27 2007, 16:36
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Что произойдёт с программой (программа написана на Delphi для Win2k/XP), если во время выполнения возникнет исключение, реакции на которое не предусмотренно? Как программа будет работать дальше?
Go to the top of the page
 
+Quote Post
Stanislav Sedov
сообщение Apr 28 2007, 00:58
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 24
Регистрация: 3-05-06
Из: г. Москва
Пользователь №: 16 729



Цитата(_Артём_ @ Apr 27 2007, 17:36) *
Что произойдёт с программой (программа написана на Delphi для Win2k/XP), если во время выполнения возникнет исключение, реакции на которое не предусмотренно? Как программа будет работать дальше?


Программа будет завершена ОС.


--------------------
ST4096-RIPE
Go to the top of the page
 
+Quote Post
reddot
сообщение May 2 2007, 19:12
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 18
Регистрация: 7-06-06
Из: Зеленоград
Пользователь №: 17 843



По идее в любом случае есть обработчик ошибок на уровне Application. Он выводит мессадж об ошибке и завершает приложение. Если каким-то образом и этот стандартный обработчик убрать (не знаю насколько это возможно, давно с дельфями не работал), думаю, что программа продолжит выполняться, но возможно окажется в зависшем состоянии. Эксепшены в дельфи - исключительно программная абстракция к ОС никакого отношения не имеющая.
Go to the top of the page
 
+Quote Post
_Артём_
сообщение May 23 2007, 16:23
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(reddot @ May 2 2007, 22:12) *
По идее в любом случае есть обработчик ошибок на уровне Application. Он выводит мессадж об ошибке и завершает приложение. Если каким-то образом и этот стандартный обработчик убрать (не знаю насколько это возможно, давно с дельфями не работал), думаю, что программа продолжит выполняться, но возможно окажется в зависшем состоянии. Эксепшены в дельфи - исключительно программная абстракция к ОС никакого отношения не имеющая.


Насчёт автоматического завершения не уверен: много раз видел как программа выводит сообщение об ошибке и при этом продолжает работать. Но как она при этом работает? Сходит с ума или просто продолжает?
Go to the top of the page
 
+Quote Post
Ivan_Kov
сообщение May 24 2007, 06:53
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 174
Регистрация: 30-10-06
Из: г. Курск
Пользователь №: 21 787



Цитата(_Артём_ @ May 23 2007, 20:23) *
Насчёт автоматического завершения не уверен: много раз видел как программа выводит сообщение об ошибке и при этом продолжает работать. Но как она при этом работает? Сходит с ума или просто продолжает?

Это уже зависит от того что за причина вызвала exception. Если ошибка работы с памятью, то есть вероятность что нарушены какие-то данные программы, что может привести и к не корректной работе в дальнейшем, хотя в этом случае exception может и не возникнуть. Если exception возникло в обработке нажания кнопки, скажем на операторе StrToInt, то программа просто вылетит из обработчика события кнопки и продолжит свою работу.
Короче возможны самые разные варианты, от самого безобидного - выход из обработчика текущего события, до аварийного равершения приложения операционной системой.

PS Обычно приложение закрывается если происходит не обрабатываемое исключение, или коцаются какие-нить важные данные (что и приводит с не обрабатываемому исключению)
вообще есть обработчик по умолчанию, если он - не справляется, тогда - все, хана приложению
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th June 2025 - 07:24
Рейтинг@Mail.ru


Страница сгенерированна за 0.01358 секунд с 7
ELECTRONIX ©2004-2016