Changeset View
Changeset View
Standalone View
Standalone View
src/aphront/handler/PhabricatorAjaxRequestExceptionHandler.php
- This file was added.
<?php | |||||
final class PhabricatorAjaxRequestExceptionHandler | |||||
extends PhabricatorRequestExceptionHandler { | |||||
public function getRequestExceptionHandlerPriority() { | |||||
return 110000; | |||||
} | |||||
public function getRequestExceptionHandlerDescription() { | |||||
return pht('Responds to requests made by AJAX clients.'); | |||||
} | |||||
public function canHandleRequestException( | |||||
AphrontRequest $request, | |||||
Exception $ex) { | |||||
// For non-workflow requests, return a Ajax response. | |||||
return ($request->isAjax() && !$request->isWorkflow()); | |||||
} | |||||
public function handleRequestException( | |||||
AphrontRequest $request, | |||||
Exception $ex) { | |||||
// Log these; they don't get shown on the client and can be difficult | |||||
// to debug. | |||||
phlog($ex); | |||||
$response = new AphrontAjaxResponse(); | |||||
$response->setError( | |||||
array( | |||||
'code' => get_class($ex), | |||||
'info' => $ex->getMessage(), | |||||
)); | |||||
return $response; | |||||
} | |||||
} |