Back to all reviewers

Clear error recovery paths

Homebrew/brew
Based on 6 comments
Ruby

Implement error handling that provides both clear recovery paths for users and graceful degradation for the system. This includes: 1. Clear, actionable error messages that guide users to resolution

Error Handling Ruby

Reviewer Prompt

Implement error handling that provides both clear recovery paths for users and graceful degradation for the system. This includes:

  1. Clear, actionable error messages that guide users to resolution
  2. Graceful fallbacks when operations fail
  3. Retry mechanisms for transient failures
  4. Early returns to simplify error flows

Example:

def handle_api_request
  return unless result.status.success?

  begin
    json = JSON.parse(result.stdout)
  rescue JSON::ParserError
    nil
  end
rescue AuthenticationError => e
  message = case credentials_type
  when :github_cli_token
    "Your GitHub CLI login session may be invalid.\n" \
    "Refresh it with: gh auth login"
  else
    "Token may be invalid or expired.\n" \
    "Check: https://github.com/settings/tokens"
  end
  raise UserError.new(message)
rescue TemporaryFailure => e
  @retry_count ||= 0
  raise if @retry_count >= MAX_RETRIES

  sleep_time = 2 ** @retry_count
  @retry_count += 1
  retry
end

This approach ensures systems degrade gracefully while providing users clear paths to resolve issues.

6
Comments Analyzed
Ruby
Primary Language
Error Handling
Category

Source Discussions