Exception: ProcessExecuter::Error

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

Overview

Base class for all ProcessExecuter errors

It is recommended to rescue 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
      ├─> ArgumentError
      ├─> CommandError
      │   ├─> FailedError
      │   └─> SignaledError
      │       └─> TimeoutError
      ├─> ProcessIOError
      └─> SpawnError
Error Class Description
Error This catch-all error serves as the base class for other custom errors.
ArgumentError Raised when an invalid argument is passed to a method.
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 exit status.
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.
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 #cause for the original exception from Process.spawn.

Examples:

Rescuing any error

begin
  ProcessExecuter.run('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('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 occurred: #{e}"
end