1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
# frozen_string_literal: true
module Clamp
# raised to indicate invalid option/parameter declaration
class DeclarationError < StandardError
end
# abstract command runtime error
class RuntimeError < StandardError
def initialize(message, command)
super(message)
@command = command
end
attr_reader :command
end
# raised to signal incorrect command usage
class UsageError < RuntimeError; end
# raised to request usage help
class HelpWanted < RuntimeError
def initialize(command)
super("I need help", command)
end
end
# raised to signal error during execution
class ExecutionError < RuntimeError
def initialize(message, command, status = 1)
super(message, command)
@status = status
end
attr_reader :status
end
end
|