- 132 名前:デフォルトの名無しさん mailto:sage [2008/12/01(月) 19:08:35 ]
- >>123
raise "message" -> raise RuntimeError, "message" raise XxxError.new -> raise XxxError raise XxxError -> raise XxxError 2番目は例外オブジェクトを渡す形式。 なんかどっかに取っておいてある例外を raise @ex みたいに挙げるとか。 例外を挙げる前にアクセサを呼んで情報をセットするときとか。 一番使われてるのは3番目じゃね? raise XxxError, "message" -> raise XxxError.new("message") と同じ。 1番目の形式は3番目の形式の省略形と言えるけど、これに合わせて rescueでも例外クラスを省略するとRuntimeError以下を捕捉する。 捕捉するな、ヤバいことになったぞ、ってときはExceptionとかRuntimeErrorよりスーパークラスな もの挙げたほうがいいと思う。
|

|