summaryrefslogtreecommitdiff
path: root/lib/error.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/error.rb')
-rw-r--r--lib/error.rb16
1 files changed, 14 insertions, 2 deletions
diff --git a/lib/error.rb b/lib/error.rb
index 29f4234..81ec979 100644
--- a/lib/error.rb
+++ b/lib/error.rb
@@ -24,10 +24,11 @@ module OpenTox
"BadRequestError" => 400,
"NotAuthorizedError" => 401,
"NotFoundError" => 404,
- "ServiceUnavailableError" => 503,
- "TimeOutError" => 504,
"LockedError" => 423,
+ "InternalServerError" => 500,
"NotImplementedError" => 501,
+ "ServiceUnavailableError" => 503,
+ "TimeOutError" => 504,
}.each do |klass,code|
# create error classes
c = Class.new Error do
@@ -115,6 +116,17 @@ module OpenTox
end
end
+ # overwrite backtick operator to catch system errors
+class Object
+ def `(code)
+ msg = super("#{code} 2>&1").chomp
+ internal_server_error msg unless $?.to_i == 0
+ msg
+ rescue Errno::ENOENT => e
+ internal_server_error e
+ end
+end
+
class Array
def short_backtrace
short = []