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




Вниз

Как вызвать системную ошибку. 


Andrewv   (2001-12-18 14:14) [0]

Можно ли из собственной программы вызвать системную ошибку
"Программа выполнила недопустимую операцию"?



Андрей Сенченко   (2001-12-18 14:25) [1]


var
i : integer
begin
i := i/0
end.

или нужен генератор ошибок по выбору ?



Dimka Maslov   (2001-12-18 17:26) [2]

ExceptObjProc:=nil;
PInteger(nil)^:=0;



Pat   (2001-12-18 17:45) [3]

>Андрей Сенченко
А сам проверял?



panov   (2001-12-18 17:56) [4]

var
s : String;
p: Pointer;
begin
s := "Exception";
p := nil;
Move(s,p,9);



Дремучий   (2001-12-18 21:59) [5]

var Obj:TLabel;//любой компонентный тип
//нигде не вызывается конструктор Obj!
begin
//обращение к несозданому объекту
Obj.Caption := "Exception! Ha-ha dva raza!";
end;




Алексей Петров   (2001-12-19 08:46) [6]

Человек просил недопустимую операцию - а вы ему access violation хором предлагаете :)

Priveleged instruction:

asm
hlt
end;


А это чисто недопустимая операция

asm
lock nop
end




Digitman   (2001-12-19 08:55) [7]

Абсолютно согласен с <Алексей Петров>



Bizon   (2001-12-19 10:05) [8]

Попробывал последний вариант.
Ошибка External Exception и в 98 и в 2к
Вот так.



Алексей Петров   (2001-12-19 10:20) [9]

External Exception - Это Delphi-йская обертка над всеми неведомыми для Delphi исключениями.
А код соответствует, как раз, процессорному исключению "неверный код операции".



Bizon   (2001-12-19 10:26) [10]

Замечательно, но эта обработка высвечивается в сообщении, а как сделать чтобы было четко написано: Программа выполнила......
Как в wind`е обычно.



Dimka Maslov   (2001-12-19 10:36) [11]

В Delphi определён адрес обработчика исключений ExceptObjProc, если он определён, то при возникновении системной ошибки возникнет исключение. В противном случае - "программа выполнила недопустимую операцию"



Bizon   (2001-12-19 10:41) [12]

Ок. Получилось.



handra   (2001-12-19 14:34) [13]

Нифига:
ExceptObjProc:=nil;
asm lock nop end;

Результат:
Исключение unknown software exception и т.д.
Затем следующее:
Runtime error 255 at ....



Big_Hart   (2001-12-19 14:53) [14]

asm
cli
end
Repeat
until false




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




Наверх





Память: 0.73 MB
Время: 0.024 c
6-22316           dmur                  2001-09-24 20:58  2002.01.08  
Перехват ошибок при соединении с помощью сокетов


1-22149           Roman_zdrj            2001-12-20 12:43  2002.01.08  
вызовы из dll


3-21906           Юрий Жуков            2001-11-21 09:40  2002.01.08  
Oracle ADO vs DOA - fido7.ru.delphi.db


1-22134           Rosco                 2001-12-15 12:54  2002.01.08  
А такое уже есть?


1-22032           Socol                 2001-12-18 10:01  2002.01.08  
Монипуляция чисел.