This chapter really went to town on exception management because this is such an important subject if you want to build stable applications. You started by looking at some of the strategic concepts that are essential to understand before you start constructing your error-handling code. Then you looked at the mechanics and management of exceptions in exhaustive detail, including exception debugging within the IDE, the use of custom exceptions, and how to deal with unhandled exceptions. Finally, you dealt with some of the more advanced situations, such as cross-thread exceptions, remoting exceptions, and using performance counters to analyze exception behavior within your application.
Possibly the most important lessons to take away from this chapter are that you need to have a strategy for your application's exception handling and you need to follow that strategy closely to make your application as solid and reliable as possible.