# Understanding User and Kernel Mode

**URL:** <https://discourse.codinghorror.com/t/understanding-user-and-kernel-mode/405>\
**Category:** blog\
**Created:** [January 3, 2008, 12:00am UTC](https://discourse.codinghorror.com/t/understanding-user-and-kernel-mode/405 "2008-01-03T00:00:00Z")\
**Posts on this page:** 1\
**Showing post:** 62

<div class="post-metadata">

**Author:** ![SashaG](https://discourse-cdn.codinghorror.com/letter_avatar_proxy/v2/letter/s/779978/32.png) [@SashaG](https://discourse.codinghorror.com/u/SashaG)\
**Post date:** [January 5, 2008, 12:00am UTC](https://discourse.codinghorror.com/t/understanding-user-and-kernel-mode/405/62 "2008-01-05T00:00:00Z")

</div>

I think the choice is for the sake of having a uniform approach that guarantees a similar way of registering and invoking exception handlers in a way that is relatively independent of the language or architecture in use. It facilitates communicating first-chance and second-chance exceptions to the debugger in a uniform way; communicating failure to find an exception handler to the environment subsystem; invoking the unhandled exception filter; etc.

---

_[View the full topic](https://discourse.codinghorror.com/t/understanding-user-and-kernel-mode/405)._
