例外処理
昨日から例外が起きたときにブラウザ上には多くの情報を出さず、コンソール側にはバックトレースを出したいと思って悩んでいたのを解決。
def raise_test begin raise Exception, "Exception!" rescue Exception => mes Ramaze::Log.warn(mes.message + " For Console") Ramaze::Log.warn(mes.backtrace.join("\n")) mes.message + " For Browser" end end
mesはStringだと思っていたのだが、この場合mesはExceptionのオブジェクトらしい。
messageで文字列・backtraceでバックトレースが取れる。
これをRamaze::Controllerのサブクラスに置いておけば、ブラウザではException! For Browserと表示・コンソールにはException! For Consoleとバックトレースが表示される。
今のところwarnにしてあるが、ramazeのfaqによるとinfoやdebugも使えるらしい。errorもあったかな。