public static function error(\Exception $e) { $app = Slim::getInstance(); if ($e instanceof APIException) { $app->log->addError("API error [{$e->getHTTPCode()}][{$e->getCode()}]: " . print_r(['error' => $e->getErrors()], 1)); $app->halt($e->getHTTPCode(), json_encode(['error' => $e->getErrors()], JSON_FORCE_OBJECT)); } else { $app->log->addError("API error [500][{$e->getCode()}]: {$e->getMessage()} \n {$e->getTraceAsString()}"); $app->syslog->addError("API error [500][{$e->getCode()}]: {$e->getMessage()} \n {$e->getTraceAsString()}"); if ($app->config('mode') == 'development') { self::registerWhoops(); $app->whoops->handleException($e); } $app->halt(500); } }
/** * @param \Exception $ex */ public function logException(\Exception $ex) { if ($ex instanceof Exception) { $httpCode = $ex->getHTTPCode(); $headers = $ex->getHTTPHeaders($this->server); } else { $httpCode = 500; $headers = []; } $this->server->httpResponse->addHeaders($headers); $this->server->httpResponse->setStatus($httpCode); $body = $this->generateBody($ex); $this->server->httpResponse->setBody($body); $this->sendResponse(); }
function testStatus() { $e = new Exception(); $this->assertEquals(500, $e->getHTTPCode()); }