Page MenuHomePhabricator

Modularize Aphront exception handling
ClosedPublic

Authored by epriestley on Sep 3 2015, 1:12 PM.
Tags
None
Referenced Files
Unknown Object (File)
Wed, Dec 18, 6:48 AM
Unknown Object (File)
Fri, Dec 13, 12:15 AM
Unknown Object (File)
Tue, Dec 10, 4:41 AM
Unknown Object (File)
Tue, Dec 10, 3:56 AM
Unknown Object (File)
Thu, Dec 5, 11:19 AM
Unknown Object (File)
Thu, Dec 5, 12:47 AM
Unknown Object (File)
Wed, Dec 4, 10:06 AM
Unknown Object (File)
Fri, Nov 29, 1:23 AM
Subscribers
None

Details

Summary

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).

Diff Detail

Repository
rP Phabricator
Branch
gripe4
Lint
Lint Passed
Unit
Tests Passed
Build Status
Buildable 7899
Build 8829: [Placeholder Plan] Wait for 30 Seconds
Build 8828: arc lint + arc unit

Event Timeline

epriestley retitled this revision from to Modularize Aphront exception handling.
epriestley updated this object.
epriestley edited the test plan for this revision. (Show Details)
epriestley added a reviewer: chad.
chad edited edge metadata.
chad added inline comments.
src/applications/config/module/PhabricatorConfigRequestExceptionHandlerModule.php
44

prefer setTable() which adds CSS specific to tables.

This revision is now accepted and ready to land.Sep 3 2015, 3:53 PM
epriestley edited edge metadata.
  • Use setTable() for all module tables.
This revision was automatically updated to reflect the committed changes.