public function isReachable(AphrontDatabaseConnection $connection)
 {
     $record = $this->getHealthRecord();
     $should_check = $record->getShouldCheck();
     if ($this->isSevered() && !$should_check) {
         return false;
     }
     try {
         $connection->openConnection();
         $reachable = true;
     } catch (AphrontSchemaQueryException $ex) {
         // We get one of these if the database we're trying to select does not
         // exist. In this case, just re-throw the exception. This is expected
         // during first-time setup, when databases like "config" will not exist
         // yet.
         throw $ex;
     } catch (Exception $ex) {
         $reachable = false;
     }
     if ($should_check) {
         $record->didHealthCheck($reachable);
     }
     if (!$reachable) {
         $this->didFailToConnect = true;
     }
     return $reachable;
 }
 public function isReachable(AphrontDatabaseConnection $connection)
 {
     $record = $this->getHealthRecord();
     $should_check = $record->getShouldCheck();
     if ($this->isSevered() && !$should_check) {
         return false;
     }
     try {
         $connection->openConnection();
         $reachable = true;
     } catch (Exception $ex) {
         $reachable = false;
     }
     if ($should_check) {
         $record->didHealthCheck($reachable);
     }
     if (!$reachable) {
         $this->didFailToConnect = true;
     }
     return $reachable;
 }