Wyjątki sprzętowe
Większość standardowych wyjątki rozpoznawane przez system operacyjny są wyjątki zdefiniowane przez sprzęt.System Windows rozpoznaje, poza kilkoma wyjątkami oprogramowanie niskiego poziomu, ale te są zazwyczaj najlepiej obsługiwane przez system operacyjny.
Windows mapuje błędów sprzętowych procesorów różne kody wyjątków w tej sekcji.W niektórych przypadkach procesor może generować tylko podzbiór tych wyjątków.System Windows zbuforuje te informacje o wyjątku i kod wyjątku odpowiednie kwestie.
Wyjątki sprzętowe rozpoznawane przez system Windows są podsumowane w tabeli poniżej:
Kod wyjątku |
Przyczyna wyjątek |
---|---|
STATUS_ACCESS_VIOLATION |
Odczyt lub zapis w lokalizacji pamięci niedostępne. |
STATUS_BREAKPOINT |
Napotkaniu punktu przerwania zdefiniowany sprzętu; używane tylko przez debugery. |
STATUS_DATATYPE_MISALIGNMENT |
Odczyt lub zapis danych na adres, który jest nieodpowiednio wyrównany; na przykład podmioty 16-bitowe muszą być dostosowane do 2-bajtowych granic.(Nie ma zastosowania do Intel 80x86 procesorów.) |
STATUS_FLOAT_DIVIDE_BY_ZERO |
Dzielenie liczb zmiennoprzecinkowych typu przez 0.0. |
STATUS_FLOAT_OVERFLOW |
Przekraczających maksymalne dodatnie wykładnik zmiennoprzecinkowych typu. |
STATUS_FLOAT_UNDERFLOW |
Przekraczających wielkość najniższej wykładnik ujemnych liczb zmiennoprzecinkowych typu. |
STATUS_FLOATING_RESEVERED_OPERAND |
Przy użyciu zastrzeżonego formatu liczb zmiennoprzecinkowych (nieprawidłowe użycie formatu). |
STATUS_ILLEGAL_INSTRUCTION |
Próba wykonania kodu instrukcji nie jest zdefiniowane przez przetwórcę. |
STATUS_PRIVILEGED_INSTRUCTION |
Wykonywanie instrukcji nie jest dozwolona w bieżącym trybie komputera. |
STATUS_INTEGER_DIVIDE_BY_ZERO |
Podzielenie typu integer przez 0. |
STATUS_INTEGER_OVERFLOW |
Próba wykonania operacji, która przekracza zakres wartości całkowitej. |
STATUS_SINGLE_STEP |
Wykonywania pojedynczych instrukcji w tryb pracy krokowej; używane tylko przez debugery. |
Wiele z tych wyjątków wymienionych w powyższej tabeli są przeznaczone do obsługi przez debugery, system operacyjny lub inny kod niższego poziomu.Z wyjątkiem całkowitych i zmiennoprzecinkowych błędy kod nie będzie obsługiwał te błędy.Zatem filtr obsługi wyjątków powinien zwykle służy do Ignoruj wyjątki (ocena na 0).W przeciwnym razie może uniemożliwić mechanizmów niższe od odpowiednio reagować.Jednakże, można podjąć odpowiednie środki ostrożności przeciwko potencjalny wpływ tych niskiego poziomu błędów przez piśmie krańcowych.