Как делается ошибка


Загрузить 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. Кнопки (Первое число):

Реклама

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

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

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

Как сделать ошибки в сложной системе полезными для пользователя

Уровень сложности
Простой

Время на прочтение
6 мин

Количество просмотров 1.4K

О чём вы в первую очередь думаете, когда слышите «legacy-продукт»? Сложность, техдолг и, конечно, ошибки. Случаются как регулярные инциденты ввиду проблем в конкретных компонентах, так и «скрытые ружья» в местах системы, которым уделили не так много внимания при изначальном системном дизайне.

Худшее, что можно сделать с ошибками в такой сложной системе — пойти решать их в лоб. Решение вряд ли станет подходящим для бизнес-задачи и может усложнить поддержку продукта или добавить ещё техдолга, который замедлит будущее развитие.

Меня зовут Александр, я руковожу продуктами CDN и DNS в компании EdgeЦентр. В этой статье я расскажу несколько историй о том, как правильная работа с ошибками не только сделала жизнь наших пользователей лучше, но и позволила избежать усложнения продуктов.

Природа ошибок

Оба продукта — как CDN, так и DNS, работают понятно: это система доставки контента и доменных имён. В первом случае мы предоставляем нашим клиентам сеть точек кэширования контента, а во втором — авторитативные DNS-серверы, которые хранят их записи. Функционал глобально не менялся со времён Танненбаума и его «Компьютерных Сетей», поэтому в нём не было явных проблемных зон.

Однако, за последние десятки лет сильно развивается концепция DNSaaS и CDNaaS — чем больше можно упаковать в CDN и DNS как сервис, тем больше продукты интересны клиенту. При равном качестве покрытия сети, скорости и надёжности работы, клиент склонен выбирать тот сервис, который решит большинство задач.

Мы стараемся не отставать от тренда: например, наша CDN поддерживает популярные протоколы сжатия, имеет image processing и может гибко управляться политиками прямо с источника. А DNS предлагает гибкие настройки балансировки и Failover-механизм, который включает и выключает источники клиента из раздачи для доступности ресурсов.

 Дополнительные опции и фичи приводят к необходимости тонкой настройки, продвинутым интерфейсам и спискам опций. Наши пользователи — системные администраторы и инженеры, которые при помощи API сервисов создают нужную клиенту конфигурацию и могут гибко ей управлять. Однако, такие эксперты есть далеко не во всех компаниях, так что настраивать CDN и DNS приходят менеджеры, бизнес-аналитики и владельцы бизнеса. Им нужна система, в которой легко ориентироваться и можно быстро решать задачи.

Для этой категории пользователей на сайте EdgeЦентр у каждого нашего клиента есть свой личный кабинет, в котором он может подключать или отключать CDN, DNS и другие сервисы компании, а также настраивать их работу. И тут мы приходим к ограничениям бизнес-логики, которые надо транслировать клиенту. Например, некоторые опции могут не работать вместе (например, сжатие одного и того же контента разными алгоритмами). Или данные в аналитике могут быть представлены не так, как ожидает пользователь, и надо досыпать деталей, чтобы стало понятнее, как с этими данными работать.

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

  1. сделать ошибки-ориентиры, которые помогают пользователю самостоятельно решить задачу;

  2. скорректировать пользовательский опыт, чтобы данные не интерпретировались как ошибочные;

  3. упростить работу со сложными ошибками так, чтобы они решались наиболее быстро.

Ошибки-ориентиры

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

Допустим, клиент хочет сжать большой массив изображений и видео, чтобы загрузить их в карточки товара на маркетплейс и управлять контентом при помощи заголовков. Он выбирает такие опции, как «Сжатие GZip», «Сжатие Brotli», «Кастомный заголовок Host», сохраняет, и… ему прилетает сообщение страшного вида вроде «Error! [(‘brotli_compression’, ‘fetch_compressed’)] is not allowed».

Ошибка эта взялась из API, и системному администратору или инженеру будет вполне понятна, но бизнес-пользователя вводит в ступор.

Мы решили твёрдой рукой пройтись по всем возможным исключениям, чтобы навести порядок. Для этого мы залезли в конфигурацию, нашли все опции, которые невозможно использовать одновременно, и добавили к ним простой словарь. Этот словарь интерпретировал ошибку, выбранный язык в ЛК и отдавал пользователю сообщение вида:

Сжатие Brotli не может быть включено одновременно с оптимизацией доставки больших файлов, сжатием GZip или сжатием на источнике

Brotli compression can’t be enabled along with large files delivery optimization, Fetch or GZip compression

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

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

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

В результате количество обращений за настройками в ЛК в техническую поддержку заметно снизилось. Наш абстрактный бизнес-пользователь даже без чтения документации научился настраивать сервис со второй попытки, учитывая ошибки сохранения.

Учим пользователей безошибочному чтению аналитики

Одна из важных фич CDN EdgeCenter — расширенная статистика. Она позволяет посмотреть метрики сервиса без выгрузки огромных массивов данных в BI-систему. Это хорошо подходит малому и среднему бизнесу, а также крупным клиентам на старте пользования сервисом. Мы показываем трафик в разных разрезах: по географии, по директориям и так далее.

Представим себе онлайн кинотеатр. Аналитик знает, что контент кинотеатра разложен по директориям, например, в /cinema/ru лежат российские фильмы, а в /cinema/int — зарубежные. Аналитик решает собрать статистику за N часов по пользователям в разных директориях, и приходит к выводу, что 45% пользователей смотрели зарубежные фильмы, а 70% — российские. В итоге получается 115% — очень сомнительный тотал, почему же так?

Пользователь имеет полное право прийти в сервис и сказать, что фича предоставляет недостоверные данные, с которыми нельзя работать, а следовательно, не имеет бизнес-ценности.

На самом деле статистика верна, ведь она отображает уникального пользователя ресурса, а один пользователь может посмотреть несколько фильмов за период времени, следовательно — посетить несколько директорий.

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

Одна простая подсказка — и аналитику на стороне бизнеса понятно, как интерпретировать информацию из отчёта. Мы встретили серые паттерны и в других разделах — эти скрытые контракты мы также устранили через объяснения с примерами в интерфейсе продукта.

Так мы облегчили пользователям работу со статистикой и метриками. Работа над статистикой показала нам, что «объяснение и пример» — это хорошая практика для хинтов в тех случаях, где люди приходят с конкретной бизнес-гипотезой и пытаются выявить её достоверность при помощи цифр. Нужные подсказки мы добавили в разные элементы интерфейса, чтобы сделать взаимодействие с ним максимально понятным.

А что пошло не так?

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

Мы крайне редко встречаем в пользовательских историях что-то совсем страшное, вроде 5ХХ кодов при попытке сохранения данных. Скорее можем предупредить пользователя о том, что он посылает некорректные данные (400) или пытается выполнить действие вне прав доступа (403).

При работе с API напрямую история вполне понятная — коды ошибок сразу дают понятие о том, куда посмотреть и как навести порядок. А что же делать с фронтом, который также отправляет данные по нашему API?

На заре сервиса было принято прекрасное решение — давайте писать на весь экран магическую фразу «Oops, something went wrong» («Упс, что-то пошло не так»). Системный администратор открывал консоль браузера и понимал, о чём идёт речь — получил ошибку 403, пошёл в документацию, обнаружил, что у него не хватает прав на нужное действие. А вот менеджеру или аналитику такое уведомление об ошибке мало что говорит и объясняет в чём и состоит ошибка.

Чтобы решить задачу и упростить жизнь пользователям компании и нашей техподдержке, мы взяли за основу рекомендации по обработке ошибок из RFC. Мы настроили систему так, чтобы со стандартным номером ошибки шёл вспомогательный текст. Например, мы рекомендуем пользователю проверить отправляемые данные, обновить страницу, обратиться к документации и т.д.

На помощь опять же пришли словари. В этот раз в виде «ключ-значение». Мы храним данные о кодах ошибок в key-value виде. Так мы всегда сможем добавить ранее необрабатываемый код и пояснение, или быстро изменить один из текущих хинтов для лучшей информативности.

Это решение позволило не усложнять обработку ошибок на фронте. При поимке любого кода кроме 200, бэк обращается в key-value хранилище и формирует нужное сообщение. Так что для фронта «Oops, something went wrong», как по волшебству превратился в «Error code 400 — Please, make sure that you are trying to send correct data».

И что в итоге?

Меньше обращений в техподдержку, повышение качества обращений («У меня тут 403» уже лучше, чем «Что-то сломалось»), выше уровень удовлетворённости сервисом. Мы, продакты — люди простые, видим метрики и прокачиваем их значения. Дальше мы продолжим повышать уровень простоты и понятности продуктов, потому что бизнесу важно выполнять свои задачи дёшево, быстро и без потерь в качестве работы.

Надеемся, что статья была вам полезна. Больше о работе продуктов EdgeЦентр читайте в нашем профиле.

#База знаний


  • 0

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

 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, а также о том, что ещё интересного можно с ними делать.

Как зарабатывать больше с помощью нейросетей?
Бесплатный вебинар: 15 экспертов, 7 топ-нейросетей. Научитесь использовать ИИ в своей работе и увеличьте доход.

Узнать больше


Download Article


Download Article

Do you want to create a custom Windows error message? Whether you’re an application developer or someone who wants to prank their coworker, knowing how to create a custom error message is an essential ability. To learn how to create a custom Windows error message, follow this guide.

  1. Image titled Make a Fake Error Message in Windows Step 1

    1

    Open the Notepad app.

    • Press the Win+R keys simultaneously.
    • Type notepad into the Run dialog.
    • Hit Enter or click OK.
  2. Image titled Make a Fake Error Message in Windows Step 2

    2

    Copy and paste the following code into Notepad:

    • x=msgbox(«Your Message Here», Button+Icon, «Your Title Here»)

    Advertisement

  3. Image titled Make a Fake Error Message in Windows Step 3

    3

    Customize the button(s) of your error message. Replace Button in the code you pasted into Notepad with one of the following:

    • 0 — OK
    • 1 — OK and Cancel
    • 2 — Abort, Retry and Ignore
    • 3 — Yes, No and Cancel
    • 4 — Yes and No
    • 5 — Retry and Cancel
  4. Image titled Make a Fake Error Message in Windows Step 4

    4

    Customize the icon of your error message. Replace Icon in the code that you pasted into Notepad with one of the following:

    • 0 = No Icon
    • 16 = Critical Icon (a.k.a. «X» icon)
    • 32 = Question Icon (a.k.a. «?» icon)
    • 48 = Warning Icon (a.k.a. «!» icon)
    • 64 = Info Icon (a.k.a. «i» icon)
  5. Image titled Make a Fake Error Message in Windows Step 5

    5

    Customize the title of your error message. Replace Your Title Here in the code you pasted into Notepad with what you want the title of the error message to be.

  6. Image titled Make a Fake Error Message in Windows Step 6

    6

    Customize the contents of your error message. Replace Your Message Here in the code you pasted into Notepad with what you want the error message to say.

  7. Image titled Make a Fake Error Message in Windows Step 7

    7

    Open the Save As window. Press Ctrl+S on your keyboard.

  8. Image titled Make a Fake Error Message in Windows Step 8

    8

    Expand the combo box next to Save as type and select All Files.

  9. Image titled Make a Fake Error Message in Windows Step 9

    9

    Type a name for your file followed by a period and vbs.

  10. Image titled Make a Fake Error Message in Windows Step 10

    10

    Choose a location to save the file to.

  11. Image titled Make a Fake Error Message in Windows Step 11

    11

    Save the file. Click Save.

  12. Image titled Make a Fake Error Message in Windows Step 12

    12

    Display the error message. Double-click the file that was created.

  13. Advertisement

Create a sequence of error messages. Messages will display one at a time, and closing a message will display the following one.

  1. Image titled Make a Fake Error Message in Windows Step 13

    1

    Open the Notepad app.

    • Press the Win+R keys simultaneously.
    • Type notepad into the Run dialog.
    • Hit Enter or click OK.
  2. Image titled Make a Fake Error Message in Windows Step 14

    2

    Copy and paste the following code into Notepad:

    • x=msgbox(«Your Message Here», Button+Icon, «Your Title Here»)
  3. Image titled Make a Fake Error Message in Windows Step 15

    3

    Customize the button(s) of your error message. Replace Button in the code you pasted into Notepad with one of the following:

    • 0 — OK
    • 1 — OK and Cancel
    • 2 — Abort, Retry and Ignore
    • 3 — Yes, No and Cancel
    • 4 — Yes and No
    • 5 — Retry and Cancel
  4. Image titled Make a Fake Error Message in Windows Step 16

    4

    Customize the icon of your error message. Replace Icon in the code that you pasted into Notepad with one of the following:

    • 0 — No Icon
    • 16 — Critical Icon (a.k.a. «X» icon)
    • 32 — Question Icon (a.k.a. «?» icon)
    • 48 — Warning Icon (a.k.a. «!» icon)
    • 64 — Info Icon (a.k.a. «i» icon)
  5. Image titled Make a Fake Error Message in Windows Step 17

    5

    Customize the title of your error message. Replace Your Title Here in the code you pasted into Notepad with what you want the title of the error message to be.

  6. Image titled Make a Fake Error Message in Windows Step 18

    6

    Customize the contents of your error message. Replace Your Message Here in the code you pasted into Notepad with what you want the error message to say.

  7. Image titled Make a Fake Error Message in Windows Step 19

    7

    Switch to a subsequent line position.

  8. Image titled Make a Fake Error Message in Windows Step 20

    8

    Create another error message (if desired). Repeat these steps, starting from Step 3.

    • This error message will display after the previously created one has been closed.
  9. Image titled Make a Fake Error Message in Windows Step 21

    9

    Open the Save As window. Press Ctrl+S on your keyboard.

  10. Image titled Make a Fake Error Message in Windows Step 22

    10

    Expand the combo box next to Save as type and select All Files.

  11. Image titled Make a Fake Error Message in Windows Step 23

    11

    Type a name for your file followed by a period and vbs.

  12. Image titled Make a Fake Error Message in Windows Step 24

    12

    Choose a location to save the file to.

  13. Image titled Make a Fake Error Message in Windows Step 25

    13

    Save the file. Click Save.

  14. Image titled Make a Fake Error Message in Windows Step 26

    14

    Display the error message. Double-click the file that was created.

  15. Advertisement

Add New Question

  • Question

    Is there a way to make a custom icon for the error?

    Community Answer

    No, you can try using different numbers, but most likely a real error will pop up.

  • Question

    How do I make it do actions to my computer?

    Community Answer

    You can’t do that. It’s a fake error, meaning it won’t do anything to your computer.

  • Question

    How do I create an input text box in the message?

    Community Answer

    Do this: InputVariableName=InputBox(«Prompt»,»Title»,»Value which is optional»)

See more answers

Ask a Question

200 characters left

Include your email address to get a message when this question is answered.

Submit

Advertisement

Video

Thanks for submitting a tip for review!

About This Article

Thanks to all authors for creating a page that has been read 572,331 times.

Did this article help you?

Понравилась статья? Поделить с друзьями:
  • Как вызвать ошибку сим карты
  • Как говорится на ошибках учатся знаки препинания
  • Как вызвать ошибку python
  • Как выявить ошибки на компьютере
  • Как выявить ошибки на ваз 2114