- Как исправить ошибку Unhandled Exception в Windows 10
- 6 решений для исправления необработанных исключительных ошибок
- Действия по исправлению ошибок необработанных исключений в Windows 10
- Решение 1. Выполните чистую загрузку
- Решение 2. Выполните сканирование SFC
- Решение 3. Запустите средство устранения неполадок оборудования
- Решение 4. Выполните проверку на вирусы
- Решение 5. Удалите и переустановите .NET Framework
- Решение 6. Запустите средство очистки .NET Framework.
- Управление исключениями с помощью отладчика в Visual Studio Manage exceptions with the debugger in Visual Studio
- Настройка отладчика для прерывания выполнения при создании исключения Tell the debugger to break when an exception is thrown
- Настройка отладчика для возобновления выполнения при возникновении не обработанных пользователем исключений Tell the debugger to continue on user-unhandled exceptions
- Добавление и удаление исключений Add and delete exceptions
- Добавление условий в исключение Add conditions to an exception
Как исправить ошибку Unhandled Exception в Windows 10
6 решений для исправления необработанных исключительных ошибок
- Выполнить чистую загрузку
- Выполнить сканирование SFC
- Запустите средство устранения неполадок оборудования .
- Выполнить проверку на вирусы
- Удаление и повторная установка .NET Framework
- Запустите инструмент очистки .NET Framework
Исключения можно рассматривать как известную форму ошибки, с которой операционная система запрограммирована для устранения. Другими словами, ОС – в данном случае Windows – знает об этой проблеме и уже знает, как с ней справиться.
К сожалению, также может быть какое-то исключение, которое выходит за рамки Windows. Именно эти сценарии стали известны как ошибки необработанных исключений . Это потому, что Windows не знает, как обрабатывать исключения. Тем не менее, эти ошибки также могут быть легко исправлены, хотя единственный улов здесь заключается в том, что может потребоваться некоторое время, прежде чем вы вернетесь в нужное русло.
Действия по исправлению ошибок необработанных исключений в Windows 10
Решение 1. Выполните чистую загрузку
Это позволит компьютеру запускать только минимальный набор драйверов и программ. Таким образом, вы будете знать, какая сторонняя программа, если таковая имеется, приводит к ошибке. Вот как это делается.
- Запустите msconfig. Это можно сделать, просто набрав msconfig в окне поиска Cortana и выберите Конфигурация системы в результаты поиска показаны. Либо нажмите клавишу Windows + R , чтобы запустить Выполнить , введите msconfig и нажмите ОК .
- В диалоговом окне Конфигурация системы и на вкладке Службы установите флажок Скрыть все службы Microsoft .
- Нажмите Отключить все .
- Затем перейдите на вкладку Автозагрузка и нажмите Открыть диспетчер задач .
- В Диспетчере задач вы увидите список элементов автозагрузки, относящихся к вашему ПК. Выберите каждый и нажмите Отключить .
- Закройте Диспетчер задач после завершения работы с каждым элементом автозагрузки.
- Нажмите ОК , чтобы закрыть диалоговое окно Конфигурация системы .
- Перезапустите свой компьютер.
Ваш компьютер теперь будет загружаться в так называемой среде чистой загрузки, где все сторонние программы отключены. По этой причине ПК может не иметь всех функциональных возможностей, хотя, к сожалению, нет, они будут восстановлены на следующем этапе.
- СВЯЗАННЫЕ: Полное исправление: ошибка ОСНОВНОГО РЕЖИМА КЕРНЕЛА НЕ ОБРАБОТАНА в Windows 10
Между тем, вот как узнать, какая программа может играть в шалости.
- Запустите msconfig еще раз, выполнив шаги, упомянутые выше.
- В диалоговом окне Конфигурация системы выберите Службы .
- Затем установите флажок Скрыть все службы Microsoft .
- Выберите, чтобы включить половину из автозагрузки программ в Службах .
- Нажмите ОК , а затем Перезагрузите .
- Если проблема не возникает, все выбранные вами программы прошли тестирование.
- Повторите процесс со следующей половиной.
- Если проблема возникает, запустите msconfig >Службы .
- Выберите половину из программ, которые вы выбрали во время первого запуска, и Перезапустите .
- Повторите этот процесс с половиной программ каждый раз, пока не найдете проблемную программу.
Как только вы нашли программу, вызывающую ошибку, посмотрите, есть ли обновленная версия для этой же версии. Или удалите переустановку так же, чтобы увидеть, если проблема решена. Вы также можете связаться с производителем, чтобы узнать, могут ли они помочь решить проблему.
- СВЯЗАННО: ИСКЛЮЧЕНИЕ ПРЕРЫВАНИЯ ПОЛНОЙ ФИКСИРОВКИ НЕ РАБОТАЕТ в Windows 10
Решение 2. Выполните сканирование SFC
Эта операция выполняет сканирование всех системных файлов и вносит необходимые изменения по мере необходимости. Это делает его чрезвычайно пригодным для работы с ошибками необработанных исключений. Вот как выполнить sfc scan .
- Запустите командную строку , введя cmd в поле поиска Cortana .В показанном результате поиска щелкните правой кнопкой мыши Командная строка и выберите Запуск от имени администратора . Кроме того, вы также можете открыть окно Выполнить , удерживая клавишу Windows + R , введите cmd и нажмите Enter.
- В окне командной строки введите sfc/scannow и нажмите Enter .
- Для завершения сканирования может потребоваться несколько секунд. Терпеливо ждать, пока его показы 100% сканирования завершены.
Решение 3. Запустите средство устранения неполадок оборудования
Любые проблемы с оборудованием также могут быть причиной появления ошибки. Это делает крайне необходимым выполнять сканирование оборудования и устройств, чтобы исключить вероятность того, что аппаратное обеспечение или устройство где-то сыграют свою роль.
- Чтобы определить такое оборудование, введите следующую команду в окнах Выполнить и нажмите Enter или нажмите кнопку ОК : % systemroot% \ system32 \ msdt.exe -id DeviceDiagnostic
- Следуйте инструкциям на экране, чтобы определить, есть ли какое-либо оборудование.
- Откройте диалоговое окно Выполнить , используя шаги, упомянутые в предыдущем разделе.
Вы также можете запустить средство устранения неполадок оборудования на странице настроек, как показано на снимке экрана ниже.
- СВЯЗАННЫЕ: полное исправление: «Исключение режима ядра не обработано M» в Windows 10
Решение 4. Выполните проверку на вирусы
Есть также вероятность того, что вирусная атака является причиной таких ошибок. Поэтому настоятельно рекомендуется выполнить полное и тщательное сканирование вашей системы, чтобы убедиться, что на вашем компьютере нет вирусов, или справиться с ситуацией, когда на вашем компьютере есть вирусная атака.
Также убедитесь, что ваши файлы определений вирусов обновлены и ваш компьютер постоянно защищен. Откройте Центр безопасности Защитника Windows , чтобы выполнить аудит безопасности вашего компьютера. Нажмите на маленький значок стрелки в левом нижнем углу панели задач, чтобы открыть Центр безопасности Защитника Windows . Или вы также можете ввести то же самое в поле поиска Cortana .
Кроме того, лучше всего позволить защитнику Microsoft выполнять эту работу, а не какое-либо стороннее антивирусное программное обеспечение.
Решение 5. Удалите и переустановите .NET Framework
Это также еще один способ справиться с необработанной ошибкой исключения. Вот шаги:
- Запустите Панель управления , нажав Пуск >Система Windows >Панель управления . Кроме того, вы можете просто ввести Панель управления в окне поиска Cortana и выбрать из отображаемых результатов поиска.
- Выберите Программы >Программы и функции . Найдите Microsoft .NET Framework .
- Нажмите правой кнопкой мыши и выберите Удалить .
- После завершения удаления установите обновление Windows .
- Для этого перейдите в раздел Пуск >Настройки >Обновление и безопасность .
.NET Framework будет установлен автоматически. Кроме того, вы также можете загрузить его вручную с официального сайта Microsoft – dotnet.microsoft.com .
Решение 6. Запустите средство очистки .NET Framework.
Также рекомендуется убедиться, что у вас нет проблем с .NET Framework , установленным на вашем ПК. У вас будет вся информация и процедуры, перечисленные здесь для запуска инструмента.
Между тем, вот несколько других ресурсов, которые могут вас заинтересовать:
- Исправлено: SYSTEM_SERVICE_EXCEPTION ошибка в Windows 10
- Исправлено: ошибка MACHINE_CHECK_EXCEPTION в Windows 10
- Исправлено: SYSTEM_SERVICE_EXCEPTION ошибка в Windows 10
Управление исключениями с помощью отладчика в Visual Studio Manage exceptions with the debugger in Visual Studio
Исключение указывает на состояние ошибки, возникающее при выполнении программы. An exception is an indication of an error state that occurs while a program is being executed. Можно указать отладчику, какие исключения или наборы исключений должны вызывать прерывание и в какой момент нужно прервать выполнение (то есть приостановить отладчик). You can tell the debugger which exceptions or sets of exceptions to break on, and at which point you want the debugger to break (that is, pause in the debugger). Когда отладчик прерывает работу, он показывает, где было создано исключение. When the debugger breaks, it shows you where the exception was thrown. Кроме того, можно добавлять или удалять исключения. You can also add or delete exceptions. После открытия решения в Visual Studio в разделе Отладка > Windows > Параметры исключений откройте окно Параметры исключений. With a solution open in Visual Studio, use Debug > Windows > Exception Settings to open the Exception Settings window.
Предоставьте обработчики, реагирующие на наиболее важные исключения. Provide handlers that respond to the most important exceptions. Сведения о том, как добавлять обработчики для исключений, см. в разделе Исправление ошибок путем написания более качественного кода C#. If you need to know how to add handlers for exceptions, see Fix bugs by writing better C# code. Кроме того, узнайте, как настроить отладчик, чтобы всегда прерывать выполнение для некоторых исключений. Also, learn how to configure the debugger to always break execution for some exceptions.
При возникновении исключения отладчик записывает его сообщение в окно Вывод. When an exception occurs, the debugger writes an exception message to the Output window. Он может прервать выполнение в следующих случаях. It may break execution in the following cases when:
- Создается исключение, которое не обрабатывается. An exception is thrown that isn’t handled.
- Отладчик настроен на прерывание выполнения до вызова обработчика. The debugger is configured to break execution before any handler is invoked.
- Задан параметр Только мой код, и отладчик настроен на прерывание по любому исключению, не обрабатываемому в коде пользователя. You have set Just My Code, and the debugger is configured to break on any exception that isn’t handled in user code.
В ASP.NET существует обработчик исключений верхнего уровня, отображающий станицы ошибок в браузере. ASP.NET has a top-level exception handler that shows error pages in a browser. Он не прерывает выполнение до тех пор, пока не будет включен параметр Только мой код. It doesn’t break execution unless Just My Code is turned on. Пример см. в разделе Настройка отладчика для продолжения в случае не обработанных пользователем исключений ниже. For an example, see Tell the debugger to continue on user-unhandled exceptions below.
В приложениях, написанных на Visual Basic, отладчик управляет всеми ошибками как исключениями, даже при использовании обработчиков ошибок типа On Error. In a Visual Basic application, the debugger manages all errors as exceptions, even if you use On Error-style error handlers.
Настройка отладчика для прерывания выполнения при создании исключения Tell the debugger to break when an exception is thrown
Отладчик может прервать выполнение приложения в точке возникновения исключения, чтобы вы могли проверить исключение еще до вызова обработчика. The debugger can break execution at the point where an exception is thrown, so you may examine the exception before a handler is invoked.
В окне Параметры исключений (Отладка > Windows > Параметры исключений) разверните узел для категории исключений, например Исключения среды CLR. In the Exception Settings window (Debug > Windows > Exception Settings), expand the node for a category of exceptions, such as Common Language Runtime Exceptions. Затем установите флажок для конкретного исключения в этой категории, например System.AccessViolationException. Then select the check box for a specific exception within that category, such as System.AccessViolationException. Можно также выбрать всю категорию исключений. You can also select an entire category of exceptions.
Для поиска конкретных исключений можно воспользоваться окном Поиск на панели инструментов Параметры исключений или применить функцию поиска для фильтрации определенных пространств имен (например, System.IO). You can find specific exceptions by using the Search window in the Exception Settings toolbar, or use search to filter for specific namespaces (such as System.IO).
Если вы выберете исключение в окне Параметры исключений, выполнение отладчика будет прерываться везде, где возникает исключение, независимо от того, обработано ли оно. If you select an exception in the Exception Settings window, debugger execution will break wherever the exception is thrown, no matter whether it’s handled. Теперь исключение называется первым экземпляром исключения. Now the exception is called a first chance exception. Ниже приведено несколько примеров. For example, here are a couple of scenarios:
В следующем консольном приложении C# метод Main создает исключение AccessViolationException внутри блока try/catch . In the following C# console application, the Main method throws an AccessViolationException inside a try/catch block.
Если исключение AccessViolationException отмечено в окне Параметры исключений, при выполнении этого кода в режиме отладчика произойдет останов на строке throw . If you have AccessViolationException checked in Exception Settings, execution will break on the throw line when you run this code in the debugger. После этого выполнение можно продолжить. You can then continue execution. В консоли должны отображаться обе строки. The console should display both lines:
Но в ней не отображается строка here . but it doesn’t display the here line.
Консольное приложение C# ссылается на библиотеку классов с классом, имеющим два метода. A C# console application references a class library with a class that has two methods. Один метод создает исключение и обрабатывает его, в то время как второй метод создает такое же исключение, но не обрабатывает его. One method throws an exception and handles it, while a second method throws the same exception but doesn’t handle it.
Далее приводится метод Main() консольного приложения: Here’s the Main() method of the console application:
Если исключение AccessViolationException отмечено в окне Параметры исключений, при выполнении этого кода в режиме отладчика произойдет останов на строке throw в методах ThrowHandledException() и ThrowUnhandledException() . If you have AccessViolationException checked in Exception Settings, execution will break on the throw line in both ThrowHandledException() and ThrowUnhandledException() when you run this code in the debugger.
Чтобы восстановить параметры исключений до значений по умолчанию, выберите Восстановить для списка параметры по умолчанию: To restore the exception settings to the defaults, choose the Restore the list to the default settings button:
Настройка отладчика для возобновления выполнения при возникновении не обработанных пользователем исключений Tell the debugger to continue on user-unhandled exceptions
При отладке кода .NET или JavaScript с параметром Только мой код можно указать отладчику не прерывать выполнение при возникновении исключений, которые не обрабатываются в пользовательском коде, но обрабатываются в другом месте. If you are debugging .NET or JavaScript code with Just My Code, you can tell the debugger to prevent breaking on exceptions that aren’t handled in user code but are handled elsewhere.
В окне Параметры исключений откройте контекстное меню, щелкнув правой кнопкой мыши метку столбца, а затем выберите Показать столбцы > Дополнительные действия. In the Exception Settings window, open the shortcut menu by right-clicking a column label, and then select Show Columns > Additional Actions. (Если параметр Только мой код отключен, данная команда не отображается.) Отобразится третий столбец с именем Дополнительные действия. (If you’ve turned off Just My Code, you won’t see this command.) A third column named Additional Actions appears.
Для исключения, у которого отображается Продолжить, если не обрабатывается в пользовательском коде в этом столбце, отладчик продолжает работу, если это исключение не обрабатывается в пользовательском коде, но обрабатывается в другом месте. For an exception that shows Continue when unhandled in user code in this column, the debugger continues if that exception isn’t handled in user code but is handled externally.
Чтобы изменить этот параметр для конкретного исключения, выберите исключение, щелкните правой кнопкой мыши, чтобы открыть контекстное меню, и выберите пункт Продолжить, если не обрабатывается в пользовательском коде. To change this setting for a particular exception, select the exception, right-click to show the shortcut menu, and select Continue When Unhandled in User Code. Вы также можете изменить параметр для всей категории исключений, например для всех исключений среды CLR. You may also change the setting for an entire category of exceptions, such as the entire Common Language Runtime exceptions).
Например, веб-приложения ASP.NET обрабатывают исключения путем их преобразования в код состояния HTTP 500 (Обработка исключений в веб-API ASP.NET), что может затруднить определение источника исключения. For example, ASP.NET web applications handle exceptions by converting them to an HTTP 500 status code (Exception handling in ASP.NET Web API), which may not help you determine the source of the exception. В следующем примере пользовательский код вызывает метод String.Format() , который создает FormatException. In the example below, the user code makes a call to String.Format() that throws a FormatException. Выполнение прерывается следующим образом. Execution breaks as follows:
Добавление и удаление исключений Add and delete exceptions
Исключения можно добавлять и удалять. You can add and delete exceptions. Чтобы удалить тип исключения из категории, выберите исключение и нажмите кнопку Удалить выбранное исключение из списка (знак «минус») на панели инструментов Параметры исключений. To delete an exception type from a category, select the exception, and choose the Delete the selected exception from the list button (the minus sign) on the Exception Settings toolbar. Или щелкните исключение правой кнопкой мыши и выберите Удалить в контекстном меню. Or you may right-click the exception and select Delete from the shortcut menu. Удаление исключения аналогично снятию флажка для исключения и заключается в том, что при возникновении исключения отладчик продолжит выполнение. Deleting an exception has the same effect as having the exception unchecked, which is that the debugger won’t break when it’s thrown.
Добавление исключения To add an exception:
В окне Параметры исключений выберите одну из категории исключений (например, Среда CLR). In the Exception Settings window, select one of the exception categories (for example, Common Language Runtime).
Нажмите кнопку Добавить исключение в выбранную категорию (знак «плюс»). Choose the Add an exception to the selected category button (the plus sign).
Введите имя исключения (например, System.UriTemplateMatchException). Type the name of the exception (for example, System.UriTemplateMatchException).
Исключение будет добавлено в список (в алфавитном порядке) и будет автоматически выбрано. The exception is added to the list (in alphabetical order) and automatically checked.
Чтобы добавить исключение в категории «Исключения доступа к памяти GPU», «Исключения среды выполнения JavaScript» или «Исключения Win32», необходимо включить код ошибки, а также описание. To add an exception to the GPU Memory Access Exceptions, JavaScript Runtime Exceptions, or Win32 Exceptions categories, include the error code and the description.
Проверьте правильность написания! Check your spelling! В окне Параметры исключений не проверяется существование добавленного исключения. The Exception Settings window doesn’t check for the existence of an added exception. Поэтому при вводе Sytem.UriTemplateMatchException появится запись для этого исключения (а не для System.UriTemplateMatchException). So if you type Sytem.UriTemplateMatchException, you’ll get an entry for that exception (and not for System.UriTemplateMatchException).
Параметры исключения сохраняются в файл SUO решения и таким образом применяются к конкретному решению. Exception settings are persisted in the solution’s .suo file, so they apply to a particular solution. Параметры конкретного исключения нельзя повторно использовать в решениях. You can’t reuse specific exception settings across solutions. Сейчас сохраняются только добавленные исключения. Удаленные исключения не сохраняются. Now only added exceptions are persisted; deleted exceptions aren’t. Вы можете добавить исключение, закрыть и повторно открыть решение — исключение будет находиться в нем по-прежнему. You may add an exception, close and reopen the solution, and the exception will still be there. Однако при удалении исключения, закрытии и повторном открытии решения исключение появится снова. But if you delete an exception and close/reopen the solution, the exception will reappear.
В окне Параметры исключений поддерживаются универсальные типы исключений на C#, но не на Visual Basic. The Exception Settings window supports generic exception types in C# but not in Visual Basic. Чтобы делать останов при возникновении таких исключений, как MyNamespace.GenericException , необходимо добавить исключение в виде MyNamespace.GenericException’1. To break on exceptions like MyNamespace.GenericException , you must add the exception as MyNamespace.GenericException`1. То есть, если создано следующее исключение в коде: That is, if you’ve created an exception like this code:
Вы можете добавить исключение в окне Параметры исключений, используя предыдущую процедуру: You can add the exception to Exception Settings using the previous procedure:
Добавление условий в исключение Add conditions to an exception
Используйте окно Параметры исключений, чтобы задать условия для исключений. Use the Exception Settings window to set conditions on exceptions. В числе поддерживаемых условий есть имена модулей, что позволяет включить или исключить определенное исключение. Currently supported conditions include the module name(s) to include or exclude for the exception. При задании имен модулей в качестве условий можно приостановить выполнение на исключении только для определенных модулей кода. By setting module names as conditions, you can choose to break for the exception only on certain code modules. Вы также можете избежать прерывания в определенных модулях. You may also choose to avoid breaking on particular modules.
Добавление условий в исключение поддерживается, начиная с Visual Studio 2017 Visual Studio 2017 . Adding conditions to an exception is supported starting in Visual Studio 2017 Visual Studio 2017 .
Чтобы добавить условные исключения, выполните следующие действия. To add conditional exceptions:
Нажмите кнопку Изменить условия в окне «Параметры исключений» или щелкните правой кнопкой мыши исключение и выберите Изменить условия. Choose the Edit conditions button in the Exception Settings window, or right-click the exception and choose Edit Conditions.
Чтобы добавить дополнительное условие к исключению, выберите Добавить условие. To add extra required conditions to the exception, select Add Condition for each new condition. Отобразятся строки дополнительные условий. Additional condition lines appear.
Для каждой строки условия введите имя модуля и измените список операторов сравнения на Равно или Не равно. For each condition line, type the name of the module, and change the comparison operator list to Equals or Not Equals. Можно указать подстановочные знаки ( \* ) в имени, чтобы выбрать более одного модуля. You may specify wildcards (\*) in the name to specify more than one module.
Если необходимо удалить условие, выберите X в конце строки условия. If you need to delete a condition, choose the X at the end of the condition line.