Actually, putting aside the discussion of whether it should throw the exception, it does NOT always do so. The exception will only be thrown if you are in a cancellable execution step. A page is cancellable, but global.asax is NOT. So if you do a redirect in Global.asax processing will continue for the rest of that method even if you pass true. Look at Response.End w/reflector if you don't believe me. :)