From: Wakou Aoyama Date: 2002-03-29T07:51:35+09:00 Subject: [ruby-list:34672] Re: HTML のフォームから multipart/form-data を受け取る処理での質問 青山です。 On Thu, Mar 28, 2002 at 11:50:48PM +0900, Takuo Tabata wrote: > > action = cgi['ACTION'][0].read if !cgi['ACTION'].empty? > >  と書いたところ、上のマルチパートじゃ無い呼び出しのときに、 > 「readメソッドが無い」というエラーになってしまいます。 こんな手も。 if not cgi['ACTION'].empty? action = begin cgi['ACTION'][0].read rescue NoMethodError cgi['ACTION'][0] end end Ruby はエラーの捕捉が簡単なので、事前の場合分けを工夫するよりも、素直 にエラーを拾ってあげる方が、明瞭なコードになったりもします。 また、わざと事前の場合分けを行わず、エラーを捕捉するようなコードにした 方が、判定が不要になる分、高速な場合もありますから、手抜きや付け足し、 という消極的な見方ではなく、場合によっては、より積極的である場合もある でしょうし。 if not cgi['ACTION'].empty? begin action = cgi['ACTION'][0].read rescue NoMethodError action = cgi['ACTION'][0] end end action = begin cgi['ACTION'][0].read rescue NoMethodError cgi['ACTION'][0] end if not cgi['ACTION'].empty? -- 青山 和光 Wakou Aoyama