schwarzの雑記 このページをアンテナに追加 RSSフィード

06/02/17 (Fri)2月17日の雑記

[] 00:16 2月17日の雑記 - schwarzの雑記 を含むブックマーク

CGIというのは、非っっっ常にデバッグがしづらいです。

パーミッション違いだろうが文法エラーだろうが込み入ったバグだろうが、一緒くたに

500 Internal Server Error

という無情なメッセージを返されます。


以下のような、ツクールXPのプリセットスクリプトに似た機構を作ると、些細なバグなら自分でエラーを吐いて止まってくれます。

#!/usr/bin/ruby

print "Content-type:text/html\n\n"

#============================================================
# ◆ Scene_Main
#------------------------------------------------------------
#   メインの処理を行うクラス
#============================================================
class Scene_Main

  def main
 
    # 出力
    print "Hallo Welt!!"

    # プログラム終了
    $scene = nil

  end

end

# プログラム開始
begin
  $scene = Scene_Main.new()
  while $scene
    $scene.main
  end
# begin節でエラーが起きたとき
rescue => error
  # エラーメッセージを表示
  print(error.message)
end

rescue節がポイントです。

rescueの横に  => 変数  と書くと、begin節で起こったエラーを捕捉して、その内容を変数にセットします。内容というのは例外クラスになっていて、messageメソッドを使うとエラーメッセージを取得できます。


ちなみに、$!という組み込み変数にも捕捉されたエラーが自動的に入るようになっていて、プリセットではこちらを使用しています。

ただし、$!とか$:とか、こういう一見して何なのかよくわからない組み込み変数は、あまり使わないようにしようというのが最近の風潮のようです。



実際の処理は、クラスのmainの中に書いていきます。

別のクラスへ処理を移すときは$scene = XXXXX.new、

プログラムを終了するときは$scene = nil です。

[] 00:16 2月17日の雑記 - schwarzの雑記 を含むブックマーク

das Projekt (プロェクト)
企画、プロジェクト
die Technik (ヒニック)
科学技術、技能、テクニック
der Fehler (ェーラー)
間違い、エラー