In situations where I "know" what the environment should be, but "just in case" ("sanity checks"), I will add Debug.Asserts to insure that things are as I expect; at least during development. I find that "Asserts" are as "worthy" as "unit tests" (IMO); and a lot less work. If it still crashes, I agree, there's a fundamental problem and an "application unhandled exception" (handler) and stack dump (that you can email) should be enough.