Как вызвать ошибку в приложении


Загрузить PDF


Загрузить PDF

Данная статья объясняет, как создать фейковое сообщение об ошибке (VBScript) в Windows, используя только Блокнот.

Шаги

  1. Изображение с названием OpenNotepad Step 1 1

    1

    Запустите Блокнот (NotePad). Нажмите сочетание клавиш [WIN-R] (Windows key + R) и введите «notepad.exe».

  2. Изображение с названием Type Step 2 1

    2

    Скопируйте и вставьте следующий код: x=msgbox(«Здесь ваше сообщение», 4+16, «Здесь ваше название»). Другой код для ответов «да» или «нет» таков: onclick=msgbox («Здесь ваше сообщение»,20,»Здесь ваше название»).

  3. Изображение с названием ChangeMessage Step 3

    3

    Поменяйте надписи «Здесь ваше сообщение» и «Здесь ваше название» на текст по своему усмотрению. Кроме того, измените «4+16» на другую комбинацию, как показано в разделе «Советы» (это изменит тип сообщения об ошибке и кнопки).

  4. Изображение с названием SaveAs Step 4

    4

    Щелкните по вкладке «Файл» (File) и кликните «Сохранить» (Save). Укажите название вашего сообщения об ошибке и добавьте в конце расширение «.vbs».

  5. Изображение с названием OpenVBS Step 5

    5

    Откройте VBS файл, и появится фейковое сообщение об ошибке!

    Реклама

Советы

      • 0 – только кнопка «OK»
    1. Кнопки (Первое число):

Реклама

Об этой статье

Эту страницу просматривали 58 788 раз.

Была ли эта статья полезной?

#База знаний

  • 24 фев 2021

  • 13

Разбираемся, что такое исключения, зачем они нужны и как с ними работать.

 vlada_maestro / shutterstock

Мария Помазкина

Хлебом не корми — дай кому-нибудь про Java рассказать.

Из этой статьи вы узнаете:

  • что такое исключения (Exceptions);
  • как они возникают и чем отличаются от ошибок (Errors);
  • зачем нужна конструкция try-catch;
  • как разобраться в полученном исключении
  • и как вызвать исключение самому.

Код вашей программы исправно компилируется и запускается, только вот вместо желанного результата вы видите непонятный текст. Строчки его будто кричат на вас, аж побагровели.

За примером далеко ходить не надо: сделаем то, что нам запрещали ещё в школе, — поделим на ноль.

public static void main(String[] args) {
    hereWillBeTrouble(42, 0);
}

public static void hereWillBeTrouble(int a, int b) {
    int oops = a / b;
    System.out.println(oops);
}

А получим вот что:

Это и есть исключение.

«Исключение» — сокращение от слов «исключительный случай». Это ситуация, в которой программа не может продолжить работу или её работа становится бессмысленной. Причём речь не только о нештатных ситуациях — исключения бывают и намеренными, такие разработчик вызывает сам.

Это интересно. Исключения в Java появились уже в первой версии языка. А вот в языках, где их нет, вместо них возвращают коды ошибок.

У всех классов исключений есть общий класс-предок Throwable, от него наследуются классы Error и Exception, базовые для всех прочих.

Верхушка иерархии исключений Java

Error — это критические условия, в которых работа программы должна быть завершена. Например, когда при выполнении программы закончилась память, произошёл сбой в системе или виртуальной машине. Не будем задерживаться на этой ветке, поскольку документация Java говорит:

Error is the superclass of all the exceptions from which ordinary programs are not ordinarily expected to recover.

Что в переводе означает: ошибки (Error) — это такие исключительные ситуации, в которых восстанавливать работу программы не предполагается.

То есть это проблемы, которые нельзя (недопустимо) исправлять на ходу. Всё, что нам остаётся, — извиниться перед пользователем и впредь писать программы, где возникнет меньше подобных ситуаций. Например, не допускать такой глубокой рекурсии, как в коде ниже:

static void notGood() {
    System.out.println("Только не снова!");
    notGood();
}

При работе этого метода у нас возникнет ошибка: Exception in thread «main» java.lang.StackOverflowError — стек вызовов переполнился, так как мы не указали условие выхода из рекурсии.

А теперь об Exception. Эти исключительные ситуации возникают, если разработчик допустил невыполнимую операцию, не предусмотрел особые случаи в бизнес-логике программы (или сообщает о них с помощью исключений).

1. Невыполнимая операция

Мир не рухнул, как в случае с Error, просто Java не знает, что делать дальше. Как раз из этого разряда деление на ноль в начале статьи: и правда, какое значение тогда присвоить переменной oops?

Убедитесь сами, что исключение класса ArithmeticException наследуется как раз от Exception.

Стоит запомнить. В IntelliJ IDEA, чтобы увидеть положение класса в иерархии, выберите его и нажмите Ctrl + H (или на пункт Type Hierarchy в меню Navigate).

Другая частая ситуация — обращение к несуществующему элементу массива. Например, у нас в нём десять элементов, а мы пытаемся обратиться к одиннадцатому.

2. Особый случай в бизнес-логике программы

Классика. Программируем задачу о перевозке волка, козы и капусты через реку: в лодке может быть только два пассажира, но волка с козой и козу с капустой нельзя оставлять на берегу вместе. Это и есть особый случай в бизнес-логике, который нельзя нарушать.

Или пользователь вводит дату начала некоторого периода и дату его окончания. Вторая дата не может быть раньше первой.

Или, допустим, у нас есть метод, который читает файл. Сам метод написан верно. Пользователь передал в него корректный путь. Только вот у этого работника нет права читать этот файл (его роль и права обусловлены предметной областью). Что же тогда методу возвращать? Вернуть-то нечего, ведь метод не отработал. Самое очевидное решение — выдать исключение.

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

Простейший вариант — ничего; возникает исключение — программа просто прекращает работать.

Чтобы убедиться в этом, выполним код:

public static void main(String[] args) {
    hereWillBeTrouble(42, 0);
}

public static void hereWillBeTrouble(int a, int b) {
    System.out.println("Всё, что было до...");
    int oops = a / b;
    System.out.println(oops);
    System.out.println("Всё, что будет после...");
}

Так и есть: до деления на ноль код выполнялся, а после — нет.

Это интересно: когда возникает исключение, программисты выдают что-то вроде «код [вы]бросил исключение» или «код кинул исключение». А глагол таков потому, что все исключения — наследники класса Throwable, что значит «бросаемый» / «который можно бросить».

Второе, что можно делать с исключениями, — это их обрабатывать.

Для этого нужно заключить кусок кода, который может вызвать исключение, в конструкцию try-catch.

Как это работает: если в блоке try возникает исключение, которое указано в блоке catch, то исполнение блока try прервётся и выполнится код из блока catch.

Например:

public static void main(String[] args) {
    hereWillBeTrouble();
}

private static void hereWillBeTrouble(int a, int b) {
    int oops;
    try {
        System.out.println("Всё, что было до...");
        oops = a / b;
        System.out.println(oops);
        System.out.println("Всё, что будет после...");
    } catch (ArithmeticException e) {
        System.out.println("Говорили же не делить на ноль!");
        oops = 0;
    }
    System.out.println("Метод отработал");
}

Разберём этот код.

Если блок try кинет исключение ArithmeticException, то управление перехватит блок catch, который выведет строку «Говорили же не делить на ноль!», а значение oops станет равным 0.

После этого программа продолжит работать как ни в чём не бывало: выполнится код после блока try-catch, который сообщит: «Метод отработал».

Проверьте сами: запустите код выше. Вызовите метод hereWillBeTrouble с любыми значениями аргументов кроме нулевого b. Если в блоке try не возникнет исключений, то его код выполнится целиком, а в блок catch мы даже не попадём.

Есть ещё и третий вариант — пробросить исключение наверх. Но об этом в следующей статье.

Вернёмся к первой картинке. Посмотрим, что нам сказала Java, когда произошло исключение:

Начинаем разбирать сверху вниз:

— это указание на поток, в котором произошло исключение. В нашей простой однопоточной программе это поток main.

— какое исключение брошено. У нас это ArithmeticException. А java.lang.ArithmeticException — полное название класса вместе с пакетом, в котором он размещается.

— весточка, которую принесло исключение. Дело в том, что одно и то же исключение нередко возникает по разным причинам. И тут мы видим стандартное пояснение «/ by zero» — из-за деления на ноль.

— это самое интересное: стектрейс.

Стектрейс (Stack trace) — это упорядоченный список методов, сквозь которые исключение пронырнуло.

У нас оно возникло в методе hereWillBeTrouble на 8-й строке в классе Main (номер строки и класс указаны в скобках синим). А этот метод, в свою очередь, вызван методом main на 3-й строке класса Main.

Стектрейсы могут быть довольно длинными — из десятков методов, которые вызывают друг друга по цепочке. И они здорово помогают расследовать неожиданно кинутое исключение.

Советую закреплять теорию на практике. Поэтому вернитесь в блок про Error и вызовите метод notGood — увидите любопытный стектрейс.

Всё это время мы имели дело с исключением, которое бросает Java-машина — при делении на ноль. Но как вызвать исключение самим?

Раз исключение — это объект класса, то программисту всего-то и нужно, что создать объект с нужным классом исключения и бросить его с помощью оператора throw.

public static void main(String[] args) {
    hereWillBeTrouble(42, 0);
}

private static void hereWillBeTrouble(int a, int b) {
    if (b == 0) {
        throw new ArithmeticException("ты опять делишь на ноль?");
    }
    int oops = a / b;
    System.out.println(oops);
}

При создании большинства исключений первым параметром в конструктор можно передать сообщение — мы как раз сделали так выше.

А получим мы то же самое, что и в самом первом примере, только вместо стандартной фразы «/by zero» теперь выдаётся наш вопрос-пояснение «ты опять делишь на ноль?»:

В следующей статье мы углубимся в иерархию исключений Java, узнаем про их разделение на checked и unchecked, а также о том, что ещё интересного можно с ними делать.

Научитесь: Профессия Java-разработчик PRO
Узнать больше

BSOD (синий экран смерти) — это экран ошибки в Windows, который отображается для обозначения фатальной системной ошибки, которая приводит к сбою операционной системы Windows. Эти сбои иногда тоже бывают принудительными, особенно если вы разработчик и хотите протестировать возможности программного обеспечения и инструментов. В этой статье мы расскажем вам, как вручную вызывать ошибки BSOD в Windows.

Как вручную вызвать BSOD в Windows

Каждый «синий экран смерти» имеет стоп-код, который при обнаружении и анализе позволяет понять настоящую причину проблемы. Мы рассмотрели один такой код ошибки, fltmgr.sys. В этой статье мы покажем вам, как имитировать ошибку «синий экран»; другими словами, как вручную вызвать ошибку BSOD в Windows. Давайте прыгнем прямо в него.

Примечание. Крайне важно сохранить свою работу, прежде чем приступать к описанным ниже шагам и методам.

Вызвать синий экран смерти с помощью диспетчера задач очень просто. Тем не менее, вы должны следить за мельчайшими деталями. Выполните следующие шаги.

Шаг 1: Нажмите клавишу Windows на клавиатуре, введите Диспетчер задачи нажмите «Запуск от имени администратора».

Примечание. Есть много способов открыть диспетчер задач; однако проще всего использовать горячие клавиши Ctrl+Alt+Delete.

введите диспетчер задач

Шаг 2. На вкладке «Процессы» прокрутите вниз, чтобы найти «Узел службы: средство запуска процессов сервера DCOM».

найти узел службы: средство запуска процессов сервера DCOM

Шаг 3: Выберите процесс и нажмите «Завершить задачу» в правом верхнем углу.

Примечание. Кроме того, вы можете щелкнуть правой кнопкой мыши и выбрать «Завершить задачу», чтобы завершить процесс.

нажмите Завершить задачу в правом верхнем углу

Шаг 4. В командной строке установите флажок «Удалить несохраненные данные и завершить работу» и нажмите «Завершить работу».

установите флажок Отказаться от несохраненных данных и закрыть

Вот и все. Ваш компьютер выйдет из строя с синим экраном смерти, отображая код остановки как «Critical Process Died». Если вам неудобно использовать Диспетчер задач, есть другой способ использования PowerShell.

2. Используйте Powershell, чтобы вручную вызвать BSOD в Windows

Метод может показаться сложным, но это не так. В этом методе почти нет шагов, и это самый простой способ вручную вызвать BSOD в Windows. Давайте покажем вам, как:

Шаг 1: Нажмите клавишу Windows на клавиатуре, введите PowerShellи нажмите «Запуск от имени администратора».

введите PowerShell

В приглашении нажмите Да.

Шаг 2: Введите команду, указанную ниже, и нажмите Enter.

Вининит

Введите команду, указанную ниже

Вот и все. Когда вы нажмете Enter, ваш ПК с Windows выйдет из строя, отобразив «Синий экран смерти» с кодом сбоя, говорящим «Критический процесс умер». Этот шаг не сложен, если вы хотите сделать это через командную строку. Перейдите к следующему методу и разберитесь сами.

3. Поддельный синий экран смерти в Windows с помощью командной строки

Почти нет задач, которые нельзя выполнить с помощью командной строки или терминала. Выполните следующие шаги, чтобы вызвать BSOD на вашем компьютере с Windows.

Шаг 1: Нажмите клавишу Windows на клавиатуре, введите Командная строка и нажмите «Запуск от имени администратора».

введите командную строку

В приглашении нажмите Да.

Шаг 2: Введите следующую команду и нажмите Enter.

тасккилл /IM svchost.exe /f

Введите следующую команду

Ну вот. Вот как вы можете подделать «Синий экран смерти» на ПК с Windows. Если вы тот, кто вызывает ошибки BSOD на вашем ПК с Windows, идеально создать для него ярлык, вместо того, чтобы повторять все шаги снова и снова. Перейти к следующему способу.

4. Как получить BSOD с помощью ярлыка Windows

Это расширенная версия описанного выше метода. Выполните следующие шаги, чтобы создать ярлык для ошибки BSOD.

Шаг 1: Щелкните правой кнопкой мыши на рабочем столе, выберите «Создать» и выберите «Ярлык».

Щелкните правой кнопкой мыши на рабочем столе

Шаг 2: В текстовом поле введите приведенную ниже команду и нажмите «Далее».

тасккилл /IM svchost.exe /f

введите приведенную ниже команду

Шаг 3: Дайте имя ярлыку и нажмите «Готово».

Пример: BSOD

Дайте имя ярлыку

Шаг 4: Теперь щелкните правой кнопкой мыши ярлык и выберите «Свойства».

перейти к расширенному

Шаг 5: Нажмите кнопку «Дополнительно».

Нажмите кнопку «Дополнительно»

Шаг 5. В разделе «Дополнительные свойства» выберите «Запуск от имени администратора» и нажмите «ОК».

выберите Запуск от имени администратора

Шаг 6: Наконец, нажмите «Применить» и «ОК».

нажмите Применить и ОК

Вот оно. Вы установили ярлык. С этого момента дважды щелкните ярлык и выберите «Да» в приглашении, чтобы вызвать ошибку BSOD на вашем ПК с Windows.

5. Как принудительно завершить работу Windows с помощью редактора реестра

Этот метод сложнее, чем описанный выше, но шаги довольно просты для подражания и выполнения, чтобы имитировать сбой синего экрана в Windows. Однако, поскольку мы будем использовать редактор реестра, мы настоятельно рекомендуем вам сделать резервную копию реестра Windows, прежде чем выполнять следующие шаги.

Шаг 1: Нажмите клавишу Windows на клавиатуре, введите Редактор реестраи нажмите «Запуск от имени администратора».

Примечание. Вы также можете нажать «Клавиша Windows + R», чтобы открыть диалоговое окно «Выполнить», ввести regedit.exe и нажать «ОК», чтобы открыть редактор реестра.

введите Редактор реестра

В подсказке выберите Да.

Шаг 2: В верхней адресной строке введите указанный адрес.

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesi8042prtParameters

Если вы используете USB-клавиатуру, проигнорируйте приведенную выше команду и введите следующую команду.

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServiceskbdhidParameters

Примечание. Вы также можете вручную перейти к разделу.

введите указанный адрес

Шаг 3: В папке «Параметры» щелкните правой кнопкой мыши, выберите «Создать» и выберите «Значение DWORD (32-разрядное)».

В папке «Параметры»

Шаг 4: Введите CrashonCtrlScroll в поле имени.

Введите CrashonCtrlScroll

Шаг 5: Дважды щелкните CrashonCtrlScroll, введите 1 в поле «Значение» и нажмите «ОК».

Дважды щелкните новое значение

Наконец, перезапустите систему, чтобы изменения вступили в силу. Вот и все! Когда система снова загрузится, все, что вам нужно сделать, это дважды нажать «(правую) клавишу Ctrl + Scroll Lock», чтобы заставить ваш ПК с Windows отобразить ошибку BSOD.

Если эти шаги сложны, перейдите к следующему способу.

6. Используйте сторонний симулятор BSOD в Windows

Мы будем использовать приложение «Не моя вина», которое более или менее представляет собой симулятор BSOD, который заставляет ваш ПК с Windows переходить в «Синий экран смерти» одним нажатием кнопки. Выполните шаги, указанные ниже.

Шаг 1: Перейдите на страницу загрузки приложения «Не моя вина», используя ссылку ниже, и нажмите «Загрузить».

Скачать приложение «Не моя вина»

Страница загрузки приложения «Не моя вина»

Шаг 2: Установите и запустите приложение на своем компьютере.

запустить его на своем компьютере

Шаг 3: Когда вы откроете приложение-симулятор синего экрана, вам будет предложено выбрать принудительный сбой Windows. На вкладке «Сбой» выберите любой параметр (например, «Ошибка высокого IRQL») и нажмите «Сбой».

приложение-симулятор синего экрана

Вот и все, ваш компьютер зависнет, и вы увидите синий экран смерти. Код остановки будет зависеть от варианта, который вы выберете для аварийного завершения. В этом примере код остановки — «DRIVER IRQL NOT LESS OR EQUAL».

Если у вас есть дополнительные вопросы, проверьте раздел часто задаваемых вопросов ниже.

Часто задаваемые вопросы о BSOD в Windows

1. Может ли переустановка Windows убрать BSOD?

Многие факторы могут вызвать ошибки BSOD. Таким образом, когда вы сбрасываете свой ПК с Windows до заводских настроек, вы устраняете только небольшие проблемы, а не устраняете все основные причины.

2. Могут ли поврежденные файлы вызывать BSOD?

Да, поврежденные файлы, плохие драйверы, проблемы с программным обеспечением и проблемы с оборудованием могут способствовать возникновению ошибки BSOD.

3. Может ли безопасный режим исправить BSOD?

Всякий раз, когда вы сталкиваетесь с несколькими ошибками BSOD, рекомендуется сначала запустить Windows в безопасном режиме, чтобы настроить параметры или выполнить решение.

Инициировать сбой Windows

Так вот как вы можете вручную вызвать BSOD в Windows. Теперь, когда вы знаете, как это сделать, вы должны понимать, что иногда чрезмерное моделирование BSOD может привести к функциональным и операционным ошибкам Windows.

Как вручную вызвать синий экран WindowsЕсли для какой-либо цели вам потребовалось вызвать синий экран BSoD на компьютере или ноутбуке с Windows, вы можете это сделать вручную, при этом никак не навредив системе. Зачем это может быть нужно? Например, для проверки сохранения дампов памяти, или, к примеру, для того чтобы сделать скриншот такого экрана в виртуальной машине, возможно, найдутся и другие причины.

В этой инструкции два простых метода ручного вызова стандартного системного BSoD встроенными средствами системы или с помощью стороннего инструмента для инициации сбоя с синим экраном.

  • Вызов синего экрана средствами Windows
  • Сторонние утилиты для инициации BSoD (NotMyFault)
  • Видео инструкция

Создание сбоя на синем экране средствами Windows

Внимание: несмотря на то, что этот и следующий методы в целом безопасны, не следует запускать синий экран во время активной работы, при записи данных на накопители — это хоть и искусственно вызванный сбой, но всё-таки сбой, а не его имитация.

Осуществить задуманное возможно, не прибегая к каким-либо сторонним средствам, метод сгенерировать сбой с BSoD предусмотрен в самой системе, метод должен работать в Windows 10, 8.1 и Windows 7:

  1. Зайдите в редактор реестра (Win+Rregedit).
  2. Перейдите в раздел
    HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServiceskbdhidParameters

    если вы используете USB-клавиатуру (или беспроводную). На современных ноутбуках обычно именно такой вариант клавиатуры.

  3. В раздел
    HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesi8042prtParameters

    если используется PS/2 клавиатура

  4. В раздел
    HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServiceshyperkbdParameters

    для виртуальной машины Hyper-V.

  5. В этом разделе нажмите правой кнопкой мыши в пустой области правой панели редактора реестра и создайте новый параметр DWORD (32-бит) с именем CrashOnCtrlScroll, затем дважды нажмите по параметру и задайте значение 1 для него. Добавление параметра CrashOnCtrlScroll в реестре

Чтобы перейти непосредственно к вызову синего экрана после проделанных действий перезагрузите ПК или ноутбук, а затем:

  1. Нажмите и удерживайте правую клавишу Ctrl.
  2. Дважды нажмите клавишу Scroll Lock (ScrLk). На некоторых клавиатурах, например, на ноутбуке такой отдельной клавиши может не быть, в этом случае она обычно нажимается путем нажатия Fn и клавиши, где есть альтернативная функция Scroll Lock, обычно ­— C, K или S, но иногда в верхнем ряду F-клавиш (соответствующая подпись обычно присутствует).
  3. В результате вы увидите синий экран MANUALLY INITIATED CRASH, будет создан дамп памяти, а через короткое время произойдет автоматическая перезагрузка компьютера. Синий экран Manually Initiated Crash

Есть и другие возможности, например, мы можем создать настоящий сбой CRITICAL_PROCESS_DIED, если в командной строке от имени администратора введем команду TASKKILL /IM svchost.exe /F

Инициация BSoD с помощью утилиты NotMyFault

Существуют сторонние бесплатные утилиты, позволяющие вручную вызвать синий экран с ошибкой, например, StartBlueScreen (похоже не работает в последних версиях Windows) или NotMyFault, доступная в Microsoft Sysinternals на странице https://docs.microsoft.com/en-us/sysinternals/downloads/notmyfault

Для использования утилиты достаточно скачать её, распаковать файлы, запустить исполняемый файл (отличаются по разрядности, файлы, имя которых оканчивается на «c» работают в интерфейсе командной строки). После этого на вкладке Crash в программе выбираем тип сбоя и нажимаем кнопку «Crash».

Утилита Sysinternals Not My Fault

В итоге получаем синий экран с выбранной ошибкой и причиной в файле драйвера myfault.sys (после сбора данных и сохранения дампа памяти компьютер будет автоматически перезагружен).

Синий экран myfault.sys

С помощью этой же утилиты вы можете вызвать зависания системы (вкладка Hang) или утечку памяти (вкладка Leak) примерно, как в случае, описанном в статье Невыгружаемый пул занимает всю память.

Видео инструкция

Если вы целенаправленно искали такую инструкцию, буду рад, если сможете поделиться в комментариях, для чего именно вам потребовалось вызывать BSoD.

 
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


Возможно, вам также будет интересно:

  • Как вызвать ошибку в игре
  • Как вызвать ошибку в виндовс 10
  • Как вызвать ошибку в браузере
  • Как вызвать ошибку в python
  • Как вызвать ошибку в php

  • Понравилась статья? Поделить с друзьями:
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии