ruby-reference-manual:334
From: Minero Aoki <aamine@l...>
Date: Wed, 21 Feb 2007 15:14:21 +0900
Subject: [ruby-reference-manual:334] Re: 第三段階実施要項 rev.2
青木です。 On 2007/02/20, at 22:35, Ken Date wrote: > 伊達です。 > なるほど。てっきり現行の RWiki のリファレンスをベースに > 加筆訂正していくのかと思っていましたが、新たに書き起こすのです > ね。 あ、いえいえ、もちろん既存のリファレンスは使います。 上記の話はもともとドキュメントが存在しなかった場合や、 書いてあったとしても動作を確認するときの話です。 また、@arg とか @raise を導入するのは、書くべきこと をすべて書いているかツールで確認しやすくするためと、 できるかぎり形式を統一するためです。 >> @raise ArgumentError 上記以外の引数を渡し、 >> かつそのオブジェクトが to_s メソッドを持たないときに発 >> 生します。 >> ← メソッドの選択が悪かったのでかなり無理無理 >> な条 >> 件になってしまった > > これは明示的に raise しているのだけ書けばいいでしょうか。 > 発生しうる例外を網羅的に書くのはかなり辛そうです > (特に Ruby で書かれた拡張ライブラリ)。 はい。リファレンスの方針を決めるときの規準は常に 「その情報が役立つかどうか」です。で、ドキュメント に例外を書くのはなぜかと言うと、その例外を rescue したい場合があるからでしょう。ですから、一般的に 考えて rescue する価値のない例外を書く必要はありま せん。 例えば NoMemoryError はけっこういろんなところで 発生するんですが、これは rescue する価値がほとんど ないので無視して構いません。バグに起因する例外も 書く必要はありません。 一方、書いたほうがいい例外は例えば Timeout の TimeoutError とか、Net::HTTP の Net::HTTPServerError とかです。Hash#fetch の KeyError も書くべきです。 ArgumentError, TypeError は微妙。@arg で引数の条件 がちゃんと書いてあれば、こいつらはたぶん書く必要 ないと思います。 書いたほうがよいが、すごく大変な例としては SystemCallError のサブクラスが挙げられます。これはできれば書きたい ですが、OS によって例外が違ったりしますし、このへん の洗い出しに時間をかけるよりはドキュメントのないライ ブラリを書くほうを優先してください。 -- 青木峰郎 -- ML: ruby-reference-manual@m... 使い方: http://QuickML.com/
330 2007-02-20 11:34 [aamine@l... ] 第三段階実施要項 rev.2 332 2007-02-20 14:35 ┣[itacchi@g... ] -> 334 2007-02-21 07:14 ┃┗[aamine@l... ] 346 2007-02-22 02:47 ┃ ┗[itacchi@g... ] 349 2007-02-22 14:53 ┃ ┣[zn@m... ] 351 2007-02-22 23:07 ┃ ┗[aamine@l... ] 350 2007-02-22 15:59 ┗[nagai@a... ] 352 2007-02-22 23:11 ┗[aamine@l... ]