Modularize Aphront exception handling


Modularize Aphront exception handling

Ref T1806. Ref T7173. Depends on D14047.

Currently, all exception handling is in this big messy clump in AphrontDefaultApplicationConfiguration.

Split it out into modular classes. This will let a future change add new classes in the Phacility cluster which intercept particular exceptions we care about and replaces the default, generic responses with more useful, tailored responses.

Test Plan:

Screen Shot 2015-09-03 at 6.06.52 AM.png (868×1 px, 201 KB)

  • Hit a Conduit error (made a method throw).
  • Hit an Ajax error (made comment preview throw).
  • Hit a high security error (tried to edit TOTP).
  • Hit a rate limiting error (added a bunch of email addresses).
  • Hit a policy error (tried to look at something with no permission).
  • Hit an arbitrary exception (made a randomc ontroller throw).

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T1806, T7173

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