Exception: ProcessExecuter::Error

Inherits:
StandardError
  • Object
show all
Defined in:
lib/process_executer/errors.rb

Overview

Base class for all ProcessExecuter::Command errors

It is recommended to rescue ProcessExecuter::Error to catch any runtime error raised by this gem unless you need more specific error handling.

Custom errors are arranged in the following class hierarchy:

::StandardError
  └─> Error
      ├─> CommandError
      │   ├─> FailedError
      │   └─> SignaledError
      │       └─> TimeoutError
      ├─> ProcessIOError
      └─> SpawnError
Error Class Description
Error This catch-all error serves as the base class for other custom errors.
CommandError A subclass of this error is raised when there is a problem executing a command.
FailedError Raised when the command exits with a non-zero status code.
SignaledError Raised when the command is terminated as a result of receiving a signal. This could happen if the process is forcibly terminated or if there is a serious system error.
TimeoutError This is a specific type of SignaledError that is raised when the command times out and is killed via the SIGKILL signal. Raised when the operation takes longer than the specified timeout duration (if provided).
ProcessIOError Raised when an error was encountered reading or writing to the command's subprocess.
SpawnError Raised when the process could not execute. Check the

Examples:

Rescuing any error

begin
  ProcessExecuter.run_command('git', 'status')
rescue ProcessExecuter::Error => e
  puts "An error occurred: #{e.message}"
end

Rescuing a timeout error

begin
  timeout_after = 0.1 # seconds
  ProcessExecuter.run_command('sleep', '1', timeout_after:)
rescue ProcessExecuter::TimeoutError => e # Catch the more specific error first!
  puts "Command took too long and timed out: #{e}"
rescue ProcessExecuter::Error => e
  puts "Some other error occured: #{e}"
end

Direct Known Subclasses

CommandError, ProcessIOError, SpawnError