--- main/kagemai.rb.orig +++ main/kagemai.rb @@ -24,6 +24,8 @@ URL = 'http://www.daifukuya.com/kagemai/' def initialize(root = Global::RootDir + '/main') + trap(:TERM) { Thread.main.raise SignalException } + # load actions Dir.glob(root + "/action/*\.rb").each do |action_script| next if /\/action\.rb$/o =~ action_script @@ -60,9 +62,13 @@ else raise KagemaiError, "未定義のアクション \'#{action_name}\' が指定されました。" end - rescue + rescue Exception error_message = $!.to_s error_trace = !($!.kind_of?(KagemaiError)) ? $@ : nil + + STDERR.puts error_message + STDERR.puts error_trace.join("\n") + return Result.new("#{Name}エラー", KagemaiUtil::eruby_compile('error.rhtml', binding)) end