[#30920] [REQ] Regexp#match! — Minero Aoki <aamine@...>

あおきです。

19 messages 2001/08/16

[#30945] file exist check method? — "Inoue" <inoue@...>

井上です。

98 messages 2001/08/17
[#30947] Re: file exist check method? — "U.Nakamura" <usa@...> 2001/08/17

こんにちは、なかむら(う)です。

[#30949] Re: file exist check method? — Koji Arai <JCA02266@...> 2001/08/17

新井です。

[#30950] Re: file exist check method? — "U.Nakamura" <usa@...> 2001/08/17

こんにちは、なかむら(う)です。

[#30951] Re: file exist check method? — Koji Arai <JCA02266@...> 2001/08/17

新井です。

[#30953] Re: file exist check method? — nobu.nakada@... 2001/08/17

なかだです。

[#30954] Re: file exist check method? — Koji Arai <JCA02266@...> 2001/08/17

新井です。

[#30955] Re: file exist check method? — "U.Nakamura" <usa@...> 2001/08/17

こんにちは、なかむら(う)です。

[#30956] Re: file exist check method? — Koji Arai <JCA02266@...> 2001/08/17

新井です。

[#30958] Re: file exist check method? — "U.Nakamura" <usa@...> 2001/08/18

こんにちは、なかむら(う)です。

[#30962] Re: file exist check method? — Koji Arai <JCA02266@...> 2001/08/18

新井です。

[#30963] Re: file exist check method? — "U.Nakamura" <usa@...> 2001/08/18

こんにちは、なかむら(う)です。

[#30965] Re: file exist check method? — Koji Arai <JCA02266@...> 2001/08/18

新井です。

[#30969] Re: file exist check method? — nobu.nakada@... 2001/08/18

なかだです。

[#30970] Re: file exist check method? — Koji Arai <JCA02266@...> 2001/08/18

新井です。

[#30981] Re: file exist check method? — Kazuhiro Yoshida <moriq.kazuhiro@...> 2001/08/18

もりきゅうです。長文ごめんなさい。

[#30983] Re: file exist check method? — IWATSUKI Hiroyuki <don@...> 2001/08/18

岩月と申します。そろそろ寝なくては。

[#30988] Re: file exist check method? — Kazuhiro Yoshida <moriq.kazuhiro@...> 2001/08/19

もりきゅうです。

[#30989] Re: file exist check method? — Kazuhiro Yoshida <moriq.kazuhiro@...> 2001/08/19

もりきゅうです。

[#30997] Re: file exist check method? — nobu.nakada@... 2001/08/19

なかだです。

[#31020] Re: file exist check method? — Kazuhiro Yoshida <moriq.kazuhiro@...> 2001/08/20

もりきゅうです。

[#31022] Re: file exist check method? — maili31s@... (SugHimsi == SUGIHARA Hiroshi) 2001/08/20

すぎむし。

[#31024] Re: file exist check method? — nobu.nakada@... 2001/08/20

なかだです。

[#31025] File#join — Kazuhiro Yoshida <moriq.kazuhiro@...> 2001/08/20

もりきゅうです。subject 変えました。

[#31029] Re: File#join — Kazuhiro NISHIYAMA <zn@...> 2001/08/21

In <200108201823.AA00825@yoshida.nifty.ne.jp>

[#31079] Re: File#join — "K.Umakoshi" <pegacorn@...> 2001/08/22

File#join とか File#split とか使った事ないんですが…

[#31062] Re: file exist check method? — "U.Nakamura" <usa@...> 2001/08/21

こんにちは、なかむら(う)です。

[#31065] Re: file exist check method? — nobu.nakada@... 2001/08/22

なかだです。

[#31067] Re: file exist check method? — Kazuhiro Yoshida <moriq.kazuhiro@...> 2001/08/22

もりきゅうです。

[#31068] Re: file exist check method? — "U.Nakamura" <usa@...> 2001/08/22

こんにちは、なかむら(う)です。

[#31073] Re: file exist check method? — nobu.nakada@... 2001/08/22

なかだです。

[#31082] Re: file exist check method? — "U.Nakamura" <usa@...> 2001/08/22

こんにちは、なかむら(う)です。

[#31087] Re: file exist check method? — nobu.nakada@... 2001/08/23

なかだです。

[#31094] Re: file exist check method? — "U.Nakamura" <usa@...> 2001/08/23

こんにちは、なかむら(う)です。

[#31096] Re: file exist check method? — "U.Nakamura" <usa@...> 2001/08/23

こんにちは、なかむら(う)です。

[#31005] インストールしました — 嶋崎 正貴 <hayashih@...>

嶋崎と申します

15 messages 2001/08/20

[#31144] create_process または Win での外部コマンド実行 — Take_tk <ggb03124@...>

Windows で外部コマンドを実行するにはどういう方法があるのでしょうか?。

33 messages 2001/08/29
[#31145] Re: create_process または Win での外部コマンド実行 — "U.Nakamura" <usa@...> 2001/08/29

こんにちは、なかむら(う)です。

[#31152] Re: create_process または Win での外部コマンド実行 — nobu.nakada@... 2001/08/29

なかだです。

[#31153] Re: create_process または Win での外部コマンド実行 — Take_tk <ggb03124@...> 2001/08/29

たけ(tk)です。

[ruby-list:30931] Re: [REQ] Regexp#match!

From: Minero Aoki <aamine@...>
Date: 2001-08-16 12:10:16 UTC
List: ruby-list #30931
あおきです。

  In mail "[ruby-list:30925] Re: [REQ] Regexp#match!"
    "Akinori MUSHA" <knu@iDaemons.org> wrote:

> >     m = regexp.match!( str )

>  よく理解できないんですが、与えられた文字列がマッチしないことが
> どうして正規表現オブジェクトにとって例外なんでしょうか?

オブジェクトに対する要求が「マッチするかどうかの判定」ではなく、
「マッチした結論(部分文字列集合)をよこせ」という要求の場合は、
マッチしないことは例外になりえると思います。

Regexp にとって一番普遍的と思われる match メソッドがデフォルトで
例外を発生するのなら変だと思いますが、メソッド名を変えて明示的に
それを要求するならば問題はない、という意見です。


>  条件に適合しないというのはつまり呼び出し元にとっての例外なので、
> 正規表現オブジェクトが例外をあげるのは不適当ではないでしょうか。

これも上と同じように考えられます。Regexp をマッチ判定オブジェクト
ではなく「部分文字列取り出しアルゴリズムを封入したもの」と考えると、
マッチしないと「困る」し、Regexp 側の例外であると考えられると思い
ます。


> 	m = regexp.match(str) or raise ArgumentError, ....
> 
> で十分だと思います。あげたい例外は場合によって違いますし。例えば、
> URI モジュールなら InvalidURIError や BadURIError でしょう。

でもそれを言うなら、存在しないファイルを開こうとした場合だって
Errno::ENOENT ではおかしい場合もありますよね。コンフィグファイル
が存在しないのと、データベースの一部のファイルが存在しないのと、
読もうとしたメールが存在しないのとはずいぶん意味あいは違うはずです。
問題はそれがどのくらいの頻度で違うのか、あるいは意味の違いが重要か、
でしょう。ユーザへのメッセージならば意味を伝えるべきですが、内部の
失敗なら失敗した行為がわかれば十分でしょう。

で、

   1. Regexp は文字列の解析に使う
   2. 文字列はユーザインターフェイスであることが多い
   3. ユーザインターフェイスならばエラーリポートは詳細にすべき

なので、解析が失敗した場合の多くは意味を伝えるべき、つまり nil を
返して自分でエラーの意味を伝えさせるべきと考えられます。しかし、

   1. いったん前処理をして、一定の条件が満たされているはずの場合

には失敗は所詮「内部エラー」なので、プログラマにエラーの意味まで
報告させることはないはずです。そしてこの場合も、デフォルトにする
ほどではないが結構あるんじゃないか? というのがようするに今回の
主張の核です。(具体例は別メールで。)
-------------------------------------------------------------------
青木峰郎

In This Thread