Fail fast ошибка как исправить

Некоторые пользователи Windows сообщают о проблеме, при которой при загрузке компьютера с Windows 11 или Windows 10 система загружается на рабочий стол без

Некоторые пользователи Windows сообщают о проблеме, при которой при загрузке компьютера с Windows 11 или Windows 10 система загружается на рабочий стол без каких-либо значков или миниатюр и отображает сообщение об ошибке с сообщением Explorer.exe — Fail Fast Exception. Кроме того, панель задач не отвечает. В этом посте представлены наиболее подходящие решения этой проблемы. Имейте в виду, что эта ошибка может возникать с другим файлом .exe, и в некоторых случаях, когда вы нажимаете Alt + Tab вне игры или программы, ошибка может возникнуть. В любом случае решения здесь применимы.

Explorer.exe - Ошибка Fail Fast Exception

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

Explorer.exe — исключение Fail Fast Exception

Произошло исключение с быстрой ошибкой. Обработчики исключений не будут вызваны, и процесс будет немедленно завершен.

Что такое Explorer EXE Fail Fast Exception?

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

Explorer.exe — Ошибка Fail Fast Exception

Если вы столкнулись с этой проблемой, вы можете попробовать наши рекомендуемые решения ниже в произвольном порядке и посмотреть, поможет ли это решить Explorer.exe — исключение Fail Fast Exception ошибка, возникшая на вашем ПК с Windows 11/10.

  1. Перезапустите проводник.
  2. Отключить быстрый запуск
  3. Запустите сканирование SFC и DISM
  4. Запустите CHKDSK
  5. Запустить программу в режиме совместимости
  6. Удалите и переустановите программу
  7. Выполните восстановление системы

  8. Устранение неполадок программных конфликтов.

Давайте посмотрим на описание процесса, связанного с каждым из перечисленных решений.

1]Перезапустите проводник.

Перезапустите проводник.

Поскольку сообщение об ошибке указывает на процесс explorer.exe, это решение требует перезапуска проводника и проверки наличия Explorer.exe — исключение Fail Fast Exception ошибка, возникшая на вашем ПК с Windows 11/10, устранена. Вам нужно будет открыть диспетчер задач, найти explorer.exe, щелкните его правой кнопкой мыши и выберите «Перезагрузить».

2]Отключить быстрый запуск

Функция быстрого запуска в Windows 11/10 включена по умолчанию, если применимо. Быстрый запуск предназначен для ускорения загрузки вашего компьютера после его выключения. Когда вы выключаете компьютер, он фактически переходит в состояние гибернации вместо полного выключения.

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

3]Запустите сканирование SFC и DISM.

Это решение требует, чтобы вы запустили сканирование SFC и DISM на вашем устройстве, следуя инструкциям в руководстве, как исправить ошибку приложения Explorer.exe в Windows 11/10.

4]Запустите CHKDSK

Это решение требует, чтобы вы запустили CHKDSK для исправления ошибок или поврежденных секторов на системном диске, которые могут быть здесь виноваты. Системный диск — это диск, содержащий системный раздел. Обычно это диск C :.

5]Запустить программу в режиме совместимости

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

6]Удалите и переустановите программу.

Это решение также работало для некоторых пользователей ПК. Для этого вам необходимо удалить приложение или игру (желательно использовать стороннюю программу удаления программного обеспечения) с вашего устройства Windows 11/10, а затем переустановить соответствующий элемент.

7]Выполните восстановление системы

Выполните восстановление системы

Чтобы выполнить восстановление системы на устройстве с Windows 11/10, сделайте следующее:

  • Нажмите клавишу Windows + R, чтобы вызвать диалоговое окно «Выполнить».
  • В диалоговом окне «Выполнить» введите Rstrui и нажмите Enter, чтобы открыть Мастер восстановления системы.
  • Когда вы попадете на начальный экран восстановления системы, нажмите «Далее», чтобы перейти к следующему окну.
  • На следующем экране начните с установки флажка, связанного с Показать дополнительные точки восстановления.
  • После того, как вы это сделаете, выберите точку, у которой более старая дата, чем та, в которой вы впервые начали замечать ошибку.
  • Щелкните Далее, чтобы перейти к следующему меню.
  • Нажмите Готово и подтвердите при последнем запросе.

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

8]Устранение конфликтов программ

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

Любое из этих решений должно работать на вас!

Связанное сообщение: Ошибка выполнения сервера Explorer.exe

Как исправить непредвиденную ошибку Runtime Explorer?

Чтобы исправить непредвиденную ошибку Runtime Explorer на вашем компьютере с Windows 11/10, вы можете попробовать любое из следующих исправлений:

  • Перезагрузите компьютер.
  • Обновите программу до последней версии.
  • Полностью удалите программу, а затем переустановите ее.
  • Установите последний распространяемый пакет Microsoft Visual C ++.
  • Запустите сканирование SFC, чтобы восстановить поврежденные файлы Windows.
  • Запустите Восстановление системы, чтобы вернуть компьютер в предыдущее состояние.

Как исправить активную ошибку exe?

Чтобы устранить ошибки, связанные с файлами EXE в вашей системе Windows, замена файлов, как правило, является лучшим и самым простым решением. Однако в качестве общей очистки и превентивной меры, хотя и не рекомендуется, вы можете использовать очиститель реестра для очистки всех недопустимых файлов, расширений файлов EXE или записей ключей реестра, чтобы предотвратить появление связанных сообщений об ошибках. В случае, если сам реестр серьезно поврежден, вы можете восстановить реестр.

Explorer EXE — это вирус?

Файл explorer.exe находится в папке C: Windows и это безопасный и законный системный процесс Microsoft Windows, который называется «Проводник Windows». Если файл explorer.exe находится где-либо еще в вашей системе, его можно считать вредоносным.

.

Some Windows users are reporting the issue whereby when they boot their Windows 11 or Windows 10 computer, the system boots to the desktop without any icons or thumbnails, and displays the error prompt with the message Explorer.exe – Fail Fast Exception. In addition, the taskbar is unresponsive. This post provides the most suitable solutions to this issue. Keep in mind that this error can occur with other .exe file and there are cases when you Alt+Tab out of a game or program the error may occur. In any case, the solutions here apply.

Explorer.exe - Fail Fast Exception error

Depending on the .exe program or process, when you encounter this issue, you’ll receive the following similar full error message;

Explorer.exe – Fail Fast Exception

A fail fast exception occurred. Exception handlers will not be invoked and the process will be terminated immediately.

What is Explorer EXE Fail Fast Exception?

A Fail Fast Exception is a type of Exception made by User Mode applications. Unlike all other exception codes, Fail Fast Exceptions bypass all exception handlers (frame or vector-based). Raising this exception terminates the application and invokes Windows Error Reporting (WER), if Windows Error Reporting is enabled.

Explorer.exe – Fail Fast Exception error

If you’re faced with this issue, you can try our recommended solutions below in no particular order and see if that helps to resolve the Explorer.exe – Fail Fast Exception error that occurred on your Windows 11/10 PC.

  1. Restart File Explorer
  2. Disable Fast Startup
  3. Run SFC and DISM scan
  4. Run CHKDSK
  5. Run Program in Compatibility Mode
  6. Uninstall and reinstall program
  7. Perform System Restore

  8. Troubleshoot Program conflicts.

Let’s take a look at the description of the process involved concerning each of the listed solutions.

1] Restart File Explorer

Restart File Explorer

As the error prompt is pointing to the explorer.exe process, this solution requires you to restart File Explorer and see if the Explorer.exe – Fail Fast Exception error that occurred on your Windows 11/10 PC is resolved. You will have to open the Task Manager, locate explorer.exe, right-click on it and select Restart.

2] Disable Fast Startup

The Fast Startup feature in Windows 11/10 is enabled by default if applicable. Fast Startup is designed to help your computer startup faster after you shut down your computer. When you shut down your computer, your computer actually enters a hibernation state instead of a full shutdown.

This solution requires you to disable Fast Startup and see if the error in view reappears when you boot your system.

3] Run SFC and DISM scan

This solution requires you to run the SFC and DISM scan on your device by following the instructions in the guide how to fix Explorer.exe Application error on Windows 11/10.

4] Run CHKDSK

This solution requires you to run CHKDSK to repair errors or bad sectors on the system drive, which may be the culprit here. The system drive is the drive that contains the system partition. This is usually the C: drive.

5] Run program in Compatibility Mode

This solution requires you to run the program in compatibility mode. This worked for PC users that encounter the issue when they exit from a game.

6] Uninstall and reinstall program

This solution also worked for some PC users. This requires you to uninstall the app or game (preferably, use third-party software uninstaller) from your Windows 11/10 device and then reinstall the item in question.

7] Perform System Restore

Perform System Restore

To perform System Restore on your Windows 11/10 device, do the following:

  • Press Windows key + R to invoke the Run dialog.
  • In the Run dialog box, type rstrui and hit Enter to open up the System Restore Wizard.
  • Once you arrive at the initial screen of System Restore, click Next to advance to the next window.
  • At the next screen, start by checking the box associated with Show more restore points.
  • After you’ve done this, select a point which has an older date than the one in which you first started to notice the error.
  • Click Next to advance to the next menu.
  • Click Finish and confirm at the final prompt.

At the next system startup, your older computer state will be enforced; and hopefully the issue in hand will be resolved. Otherwise, try the next solution.

8] Troubleshoot Program conflicts

If the program is conflicting with some other installed software, this error can appear. We suggest you troubleshoot the issue in Clean Boot State to identify the conflicting software.

Any of these solutions should work for you!

Related post: Explorer.exe server execution failed

How do I fix Runtime Explorer unexpected error?

To fix Runtime Explorer unexpected error on your Windows 11/10 computer, you can try any of the following fixes:

  • Restart the computer.
  • Update the program to its latest version.
  • Fully delete the program, and then reinstall it.
  • Install the latest Microsoft Visual C++ Redistributable package.
  • Run SFC scan to repair corrupted Windows files.
  • Run System Restore to return your computer to a previous state.

How do I fix active exe error?

To resolve errors related to EXE files on your Windows system, file replacement is typically the best and easiest solution. However, as an overall cleanup and preventive measure, although not recommended, you can use a registry cleaner to cleanup any invalid file, EXE file extension, or registry key entries to prevent related error messages. In the case whereby the registry itself is severely damaged, you can repair the registry.

Some Windows users are reporting the issue whereby when they boot their Windows 11 or Windows 10 computer, the system boots to the desktop without any icons or thumbnails, and displays the error prompt with the message Explorer.exe – Fail Fast Exception. In addition, the taskbar is unresponsive. This post provides the most suitable solutions to this issue. Keep in mind that this error can occur with other .exe file and there are cases when you Alt+Tab out of a game or program the error may occur. In any case, the solutions here apply.

Explorer.exe - Fail Fast Exception error

Depending on the .exe program or process, when you encounter this issue, you’ll receive the following similar full error message;

Explorer.exe – Fail Fast Exception

A fail fast exception occurred. Exception handlers will not be invoked and the process will be terminated immediately.

What is Explorer EXE Fail Fast Exception?

A Fail Fast Exception is a type of Exception made by User Mode applications. Unlike all other exception codes, Fail Fast Exceptions bypass all exception handlers (frame or vector-based). Raising this exception terminates the application and invokes Windows Error Reporting (WER), if Windows Error Reporting is enabled.

Explorer.exe – Fail Fast Exception error

If you’re faced with this issue, you can try our recommended solutions below in no particular order and see if that helps to resolve the Explorer.exe – Fail Fast Exception error that occurred on your Windows 11/10 PC.

  1. Restart File Explorer
  2. Disable Fast Startup
  3. Run SFC and DISM scan
  4. Run CHKDSK
  5. Run Program in Compatibility Mode
  6. Uninstall and reinstall program
  7. Perform System Restore

  8. Troubleshoot Program conflicts.

Let’s take a look at the description of the process involved concerning each of the listed solutions.

1] Restart File Explorer

Restart File Explorer

As the error prompt is pointing to the explorer.exe process, this solution requires you to restart File Explorer and see if the Explorer.exe – Fail Fast Exception error that occurred on your Windows 11/10 PC is resolved. You will have to open the Task Manager, locate explorer.exe, right-click on it and select Restart.

2] Disable Fast Startup

The Fast Startup feature in Windows 11/10 is enabled by default if applicable. Fast Startup is designed to help your computer startup faster after you shut down your computer. When you shut down your computer, your computer actually enters a hibernation state instead of a full shutdown.

This solution requires you to disable Fast Startup and see if the error in view reappears when you boot your system.

3] Run SFC and DISM scan

This solution requires you to run the SFC and DISM scan on your device by following the instructions in the guide how to fix Explorer.exe Application error on Windows 11/10.

4] Run CHKDSK

This solution requires you to run CHKDSK to repair errors or bad sectors on the system drive, which may be the culprit here. The system drive is the drive that contains the system partition. This is usually the C: drive.

5] Run program in Compatibility Mode

This solution requires you to run the program in compatibility mode. This worked for PC users that encounter the issue when they exit from a game.

6] Uninstall and reinstall program

This solution also worked for some PC users. This requires you to uninstall the app or game (preferably, use third-party software uninstaller) from your Windows 11/10 device and then reinstall the item in question.

7] Perform System Restore

Perform System Restore

To perform System Restore on your Windows 11/10 device, do the following:

  • Press Windows key + R to invoke the Run dialog.
  • In the Run dialog box, type rstrui and hit Enter to open up the System Restore Wizard.
  • Once you arrive at the initial screen of System Restore, click Next to advance to the next window.
  • At the next screen, start by checking the box associated with Show more restore points.
  • After you’ve done this, select a point which has an older date than the one in which you first started to notice the error.
  • Click Next to advance to the next menu.
  • Click Finish and confirm at the final prompt.

At the next system startup, your older computer state will be enforced; and hopefully the issue in hand will be resolved. Otherwise, try the next solution.

8] Troubleshoot Program conflicts

If the program is conflicting with some other installed software, this error can appear. We suggest you troubleshoot the issue in Clean Boot State to identify the conflicting software.

Any of these solutions should work for you!

Related post: Explorer.exe server execution failed

How do I fix Runtime Explorer unexpected error?

To fix Runtime Explorer unexpected error on your Windows 11/10 computer, you can try any of the following fixes:

  • Restart the computer.
  • Update the program to its latest version.
  • Fully delete the program, and then reinstall it.
  • Install the latest Microsoft Visual C++ Redistributable package.
  • Run SFC scan to repair corrupted Windows files.
  • Run System Restore to return your computer to a previous state.

How do I fix active exe error?

To resolve errors related to EXE files on your Windows system, file replacement is typically the best and easiest solution. However, as an overall cleanup and preventive measure, although not recommended, you can use a registry cleaner to cleanup any invalid file, EXE file extension, or registry key entries to prevent related error messages. In the case whereby the registry itself is severely damaged, you can repair the registry.

Содержание

  1. Fail Fast! принцип: Отлаживайте меньше и создавайте более надежное ПО
  2. Рассмотрено Вылет при запуске
  3. Austin_Delores
  4. Shane Diesel
  5. Последние поддерживаемые версии Visual C++ для скачивания
  6. Произошло исключение fail fast windows 10

Fail Fast! принцип: Отлаживайте меньше и создавайте более надежное ПО

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

Результат работы этого кода в браузере будет выглядеть следующим образом:
image loader

На второй вопрос легко ответить. Достаточно выполнить ошибочный HTML-код в браузере. На момент написания статьи браузеры Firefox, Google Chrome, Internet Explorer, Opera и Safari покажут следующий результат:
image loader

Очевидно, что в браузерах используется подход Forgive!, так как наш сайт продолжил работу и не было никаких сообщений об ошибке. Единственное отличие в том, что теперь стало больше текста, выделенного жирным шрифтом. Но всё сообщение всё ещё отображается целиком и люди предупреждены. Незачем сильно беспокоиться!

Делаем вывод: подход Forgive! работает хорошо!

Давайте попробуем воспроизвести другую ошибку.Вместо тэга мы напишем незаконченный тэг перед словами DO NOT, следующим образом:

Ранее перечисленные браузеры покажут следующий результат:
fail fast panic

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

Делаем вывод: подход Forgive! работает плохо!

Как видно из приведённых примеров, последствия ошибки при использования Forgive! подхода очень отличаются и могут варьироваться от полностью безобидных до катастрофических. Итак, каким будет корректный ответ на вопрос «Что должно произойти?»

Однако, ситуация кардинально меняется, когда приложение выполняется у клиента после релиза. К сожалению, не существует правила-на-все-времена. Практика показывает, что обычно лучше и после релиза использовать подход Fail fast! по умолчанию. Конечный негативный результат выполнения приложения, которое игнорирует ошибки и просто продолжает выполняться непредсказуемо, обычно хуже, чем негативный результат от приложения, которое внезапно прекратило работу. Если приложение бухгалтерского учёта внезапно «упало», пользователь будет зол. Если приложение продолжило работу после возникновения ошибки и создало неверный результат, пользователь будет очень зол. «Зол» лучше чем «очень зол». В этой ситуации подход Fail fast! лучше.

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

Контрактное программирование ещё один пример использования особенностей Fail fast!. Потому что неверные входные/выходные аргументы и атрибуты объектов немедленно определяются и вызывают ошибки в процессе выполнения.

Если Вы выбрали среду программирования (= язык программирования + библиотеки + фреймворки), которая придерживается этого важного правила, то Вы будете отлаживать меньше и создавать более надёжный код за меньшее время.

Источник

Рассмотрено Вылет при запуске

Администрация никогда не пришлет Вам ссылку на авторизацию и не запросит Ваши данные для входа в игру.

Austin_Delores

Новичок

36823

Shane Diesel

Следящий за Тех. Разделом

Начните с пунктов 1, 2, 3, 6

Установите чистую GTAV без модификаций, если использовали модификации, но сначала сделайте полную проверку файлов GTAV, удалив перед эти update.rpf, в папке Update, внутри папки с GTAV

Последние поддерживаемые версии Visual C++ для скачивания

square

В настройках брандмауэра Windows, удалите все правила для входящих и исходящих подключений, далее отключите его
1. Нажмите по кнопке Пуск и в поисковой панели начните набирать «Командная строка»
2. Запустите классическое приложение с правами администратора (щёлкните по нему правой кнопкой мыши)
3. В открывшемся окне вводим команду netsh advfirewall set allprofiles state off и нажимаем Enter
4. После этого Вы увидите уведомление из Центра безопасности и обслуживания об отключении системы безопасности
Перезагрузите ПК, выключите роутер на пару минут

Запустите по очереди, не закрывая предыдущие, следующие приложения: Steam или EGS, лаунчер (Gta 5 Launcher) или мультиплеер (RAGEMP) от имени администратора

Если ничего не помогает, воспользуйтесь адекватным VPN (Nordvpn, Cyberghost)

Дополнительных вариантов предложить не сможем

Источник

Произошло исключение fail fast windows 10

z adware

pp blank thumb

rating 5 mini

Администратор
pippippippippip

Группа: Главные администраторы
Сообщений: 14349
Регистрация: 12.10.2007
Из: Twilight Zone
Пользователь №: 1

spacer

Проектирование и рефакторинг*,
Разработка*,
Программирование*
6ec52a708db489b1efe3740486416c67

Когда в приложении происходит ошибка, есть два диаметрально противоположных подхода к обработке этой ошибки:

Forgive! подход: приложение продолжает выполняться и старается минимизировать последствия ошибки.

Fail Fast! подход: приложение немедленно прекращает работу и сообщает об ошибке.

Чтобы ответить на эти вопросы посмотрим на простой пример.

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

Источник

После поиска файлов в Excel появляется следующее сообщение
«Произошло исключение Fail Fast. Обработчики исключений не будут вызываться, процесс будет немедленно завершен.»
После нажатия на это сообщение Excel закрывается.
В чем может быть проблема? Спасибо.
Отвечать

Привет.

Пожалуйста, опишите подробнее, как вы выполняете поиск.

Отключите надстройки Excel и проверьте наличие проблемы.

Источник: https://answers.microsoft.com/ru-ru/msoffice/forum/all/occurs/ae1c3041-0323-40c6-a670-b0a9dff219ea

От редактора

В далёком 2014 году уже был перевод этой статьи Кристиана Ньюманса, но впоследствии Ньюманс удалил старую статью, существенно дополнил её и опубликовал на Медиуме. Во-вторых, вероятно, после очередных обновлений Хабра, у старого текста поехало форматирование, и читать его стало тяжело. В общем, считаю, что статье необходимо дать второй шанс.

В этой статье описан принцип «Fail Fast!». Что это? Зачем он нужен? Как этот принцип поможет нам писать лучший код?

Всякий раз, когда в запущенном приложении происходит ошибка, есть три возможных подхода к её обработке:

  • Ignore! — ошибка попросту игнорируется, приложение продолжает свою работу как ни в чём не бывало.

  • Fail Fast! — приложение завершается с ошибкой.

  • Fail Safe! — приложение учитывает ошибку в своей работе и продолжает свою работу по наилучшему сценарию из возможных.

Какой подход является лучшим? Какой из них следует применять в приложении?

Прежде чем ответить на этот жизненно важный вопрос, давайте посмотрим на простой пример.

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

<html>
   <body>
      <h2 style="color:red;">Important!</h2>
      <p>Please <b>DO NOT</b> drink this water!</p>
   </body>
</html>

Браузер покажет нам следующее сообщение:

Теперь добавим небольшой баг. Укажем <b> вместо </b> после фразы DO NOT:

<p>Please <b>DO NOT<b> drink this water!</p>

Возникают два интересных вопроса:

  • Что должно произойти?

  • Что произойдёт?

Ответ на второй вопрос получить довольно легко. Достаточно скормить наш код браузеру. Chrome, Edge, Firefox, Internet Explorer и Safari покажут нам следующее (на момент написания статьи):

Прежде, чем читать дальше, спросите себя: «Какой подход применяют браузеры?»

Очевидно, это не «Fail Fast!», поскольку приложение не сообщило об ошибке и продолжило, как ни в чём не бывало. Да, теперь больше текста стало отображаться жирным шрифтом, но текст по-прежнему корректен, и люди из фонтана не пьют. Не о чем беспокоиться!

Хорошо, давайте добавим другой баг. Вместо <b> мы напишем <b перед фразой DO NOT:

<p>Please <b DO NOT</b> drink this water!</p>

Упомянутые ранее браузеры покажут нам следующее:

Ужас! Теперь программа делает прямо противоположное, и последствия этому ужасны — приложение, призванное спасать жизни, превратилось в приложение-убийцу (но, к сожалению, не в то, которое каждый из нас мечтает когда-нибудь написать).

Важно осознавать тот факт, что приведённый выше пример не является преувеличением. Существует множество реальных случаев, когда мелкие баги приводили к катастрофе — например, космический корабль «Маринер-1», взорвавшийся через несколько мгновений после старта из-за пропущенного дефиса. Дополнительные примеры смотрите в Списке багов программного обеспечения.

Как мы видим, последствия отказа от «Fail Fast!» сильно отличаются и могут варьироваться от безвредных до катастрофических.

Итак, каков правильный ответ на вопрос: «Что должно произойти?»

Это зависит от ситуации. Но есть общие правила.

Правило первое:

Никогда не игнорируйте ошибку (не применяйте правило «Ignore!») — если для этого нет действительно веских причин.

В дополнительных пояснениях это правило не нуждается. Вспомним Заповедь Шестую из «Десяти Заповедей C-разработчика»:

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

Правило второе:

На этапе разработки применяйте подход «Fail Fast!».

Обосновать это правило легко:

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

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

«Fail Fast!» считается хорошей практикой в разработке ПО. Вот несколько подтверждающих цитат:

Поощряйте хорошие практики кодинга… Следствий этому много, в том числе, и «fail fast!»

— Команда Google Guava, «Объяснение философии»

Может показаться, что «немедленный и явный сбой» сделает Ваше приложение более уязвимым, но на самом деле, он сделает его более надёжным. Такие баги легче находить и исправлять, и их меньше попадёт в продакшен.

— Джим Шор, Мартин Фаулер, «Fail Fast»

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

Хенрик Варн, «18 уроков после 13 лет работы с Tricky Bugs»

Зачем ждать, пока выяснится, что что-то не работает? Сразу падайте…

— Джошуа Кериевский, «Введение в современный Agile»

Однако, ситуация может радикально измениться с выводом приложения в продакшен.

К сожалению, здесь единого правила не существует. Практика показывает, что по умолчанию лучше использовать подход «Fail Fast!». Ущерб, нанесённый приложением, которое игнорирует ошибку, обычно значительно превышает ущерб, нанесённый приложением, которое внезапно падает. К примеру, если банковское приложение падает, пользователь злится. Но если банковское приложение отображает неправильный баланс, пользователь очень злится. «Злой» лучше, чем «очень злой». Поэтому, лучше использовать «Fail Fast!».

В нашем примере с HTML-кодом подход «Fail Fast!» так же более оправдан. Предположим, что вместо сообщения браузеры выводили бы сообщение об ошибке. Разработчики сразу бы узнали о проблеме и быстро её исправили. Но даже если глючный код по каким-то причинам попадёт в продакшен, последствия будут не так уж и страшны. Призыв «Please drink this water» может иметь катастрофические последствия, в то время, как отсутствие сообщения вообще или отображение непонятной ошибки приведёт к тому, что очень малый процент прохожих выпьют воду из фонтана.

На практике же, каждый конкретный случай требует индивидуального подхода. И это особенно касается приложений, способных нанести большой ущерб — например, в медицинских, банковских приложениях или приложениях для захвата космоса. Применение «Fail Fast!» обосновано ровно до того момента, пока наша ракета не начала взлетать. Как только произошёл старт, остановить приложение (или, хуже того, проигнорировать ошибку) уже не вариант. Тут в свои права вступает подход «Fail Safe!».

Иногда хороший вариант: упасть, но минимизировать ущерб. К примеру, когда падает ваш текстовый редактор, он сначала сохраняет текущий файл во временный, затем показывает пользователю сообщение: «Бла-бла-бла, Ваши изменения были сохранены во временный файл abc.temp», отправляет отчёт об ошибке разработчикам, и только потом падает.

Отсюда третье правило:

В критических приложениях подход «Fail Safe!» должен быть реализован для того, чтобы свести к минимуму ущерб.

Подведём итог.

  • На этапе разработки используем только «Fail Fast!».

  • В продакшене: по умолчанию используем «Fail Fast!»; критически важные приложения, несущие риск большого ущерба в случае сбоя, нуждаются в индивидуальном, зависящем от контекста и исключающем (или минимизирующем) ущерб поведении. В отказоустойчивых системах должны применяться подходы «Fail Safe!» и «React Appropriately!» («Реагируйте адекватно!»)

Та же идея выражена в великолепном «Правиле исправления» книги «Искусство программирования Unix» Эрика Стивена Реймонда:

Исправляйте всё, что можно — но если нужно упасть, падайте громко и как можно скорее.

Примечание: больше информации и примеров доступно в Википедии: Fail fastFail safe, и Fault tolerant computer system.

В любом случае, очень полезно использовать среду разработки, поддерживающую принцип «Fail Fast!». К примеру, его поддерживают компилируемые языки, поскольку компиляторы сообщают об ошибках компиляции. Вот пример глупой ошибки, которая ускользает от человеческого глаза, но может привести к бесконечному циклу:

var row_index = 1
...
row_indx = row_index + 1

Подобные опечатки легко обнаруживаются приличным компилятором или (что ещё лучше) интеллектуальной IDE.

К счастью, существует огромное количество «Fail Fast!»-фич, встроенных в язык. Все они основаны на правиле:

Ошибки необходимо обнаруживать во время компиляции или как можно раньше во время работы приложения.

Вот примеры мощных «Fail Fast!» языковых фич: статическая и семантическая типизация, null-safety при компиляции, дженерики, встроенное модульное тестирование и так далее.

Но чем обнаруживать ошибки на ранней стадии, лучше не допускать их по замыслу. Это достигается, когда язык программирования не поддерживает уязвимые методы программирования — к примеру, глобальные изменяемые данные, неявная типизация, молчаливое игнорирование арифметических ошибок переполнения, достоверность (например, «», 0 и null равны false) и так далее.

Поэтому всегда нужно отдавать предпочтение окружению (языки программирования / библиотеки / фреймворки / инструменты), которое поддерживает принцип «Fail Fast!». Нам придётся меньше заниматься отладкой, а наш код будет надёжнее и безопаснее за меньшее время.

Понравилась статья? Поделить с друзьями:
  • Fail error ajax
  • Fail due to wps message exchange error asus
  • Fahrenheit indigo prophecy remastered steam error
  • Factory installed os win 10 как изменить hp
  • Factory data reset ошибка