Homec4science

Improve top-level exception handling

Authored by epriestley <git@epriestley.com> on Jan 2 2015, 19:49.

Description

Improve top-level exception handling

Summary:
Fixes T6692. Addresses two main issues:

  • The write guard would sometimes not get disposed of on exception pathways, generating an unnecessary secondary error which was just a symptom of the original root error.
    • This was generally confusing and reduced the quality of reports we received because users would report the symptomatic error sometimes instead of the real error.
    • Instead, reflow the handling so that we always dispose of the write guard if we create one.
  • If we missed the Controller-level error page generation (normally, a nice page with full CSS, etc), we'd jump straight to Startup-level error page generation (very basic plain text).
    • A large class of errors occur too early or too late to be handled by Controller-level pages, but many of these errors are not fundamental, and the plain text page is excessively severe.
    • Provide a mid-level simple HTML error page for errors which can't get full CSS, but also aren't so fundamental that we have no recourse but plain text.

Test Plan:
Mid-level errors now produce an intentional-looking error page:

{F259885}

Verified that setup errors still render properly.

@chad, feel free to tweak the exception page -- I just did a rough pass on it. Like the setup error stuff, it doesn't have Celerity, so we can't use {$colors} and no other CSS will be loaded.

Reviewers: chad, btrahan

Reviewed By: btrahan

Subscribers: epriestley, chad

Maniphest Tasks: T6692

Differential Revision: https://secure.phabricator.com/D11126

Details

Committed
epriestley <git@epriestley.com>Jan 2 2015, 19:49
Pushed
aubortJan 31 2017, 17:16
Parents
rPH2660b944bed4: Revert "Remove an empty div"
Branches
Unknown
Tags
Unknown

Event Timeline

epriestley <git@epriestley.com> committed rPH08126d39049e: Improve top-level exception handling (authored by epriestley <git@epriestley.com>).Jan 2 2015, 19:49