From: nobu.nakada@... Date: 2002-04-17T00:15:48+09:00 Subject: [ruby-dev:16936] Re: ライブラリ拡大計画 なかだです。 At Tue, 16 Apr 2002 21:39:08 +0900, Tanaka Akira wrote: > > (2) エラーが起きたときのIconv::Failureには、失敗するまでに変換 > > した結果がsuccessに、エラーが起きた部分以降の部分文字列が > > failedに入っているが、もともとの引数とエラーの位置を返すよ > > うにしたほうがエラー処理などはしやすいのではないか。 > > 最近、このあたりを使う機会があり、[ruby-dev:16932] を読んで気になった > ので確認したいのですが success は残るんですよね? > > success の生成によりステートが変化している可能性があるので、エラーの直 > 前までを与えてもう一回変換すればいいというわけにはいかないのです。 successは残します。succeededじゃないかという気もそこはかとなく するのですが。 ただし、Iconv#closeやIconv#iconvで発生するときもIconv.iconvに合 わせてArrayにしようかと思ってます。まだ決めかねてますが。その他 では、Iconv::Failure#sourceとIconv::Failure#posを追加するつもり です。#sourceは入力のArray、#posはsource[0]で変換が停止した位置、 つまりfailed == source(0)[pos..-1] if source(0)になります。 > あと、使ったときに気がついたのですが、 > > Iconv::InvalidCharacter > > Exception in the case of output coding system can't express the character. > > という記述は変です。この状況の時に起こるエラーは > Iconv::IllegalSequence です。 たしかに。直します。 > ちなみに、変換できない文字を(XML の)文字参照にするというのに使ったので > すが、コード自体は短いくせにかなり厄介でしたね。 どういう風に厄介でしたか。 -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦