Exception: Subprocess::NonZeroExit

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

Overview

Error class representing a process's abnormal exit.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(cmd, status) ⇒ NonZeroExit

Return an instance of Subprocess::NonZeroExit.

Parameters:

  • cmd (Array<String>)

    The command that returned a non-zero status.

  • status (::Process::Status)

    The status returned by waitpid.


158
159
160
161
162
163
164
165
166
167
168
169
170
171
# File 'lib/subprocess.rb', line 158

def initialize(cmd, status)
  @command, @status = cmd.join(' '), status
  message = "Command #{command} "
  if status.exited?
    message << "returned non-zero exit status #{status.exitstatus}"
  elsif status.signaled?
    message << "was terminated by signal #{status.termsig}"
  elsif status.stopped?
    message << "was stopped by signal #{status.stopsig}"
  else
    message << "exited for an unknown reason (FIXME)"
  end
  super(message)
end

Instance Attribute Details

#commandString (readonly)

Note:

This is intended only for use in user-facing error messages. In particular, no shell quoting of any sort is performed when constructing this string, meaning that blindly running it in a shell might have different semantics than the original command.

Returns The command and arguments for the process that exited abnormally.

Returns:

  • (String)

    The command and arguments for the process that exited abnormally.


152
153
154
# File 'lib/subprocess.rb', line 152

def command
  @command
end

#statusObject (readonly)

Returns the value of attribute status


152
# File 'lib/subprocess.rb', line 152

attr_reader :command, :status