まつもと ゆきひろです

In message "[ruby-list:7292] Exception in ruby"
    on 98/04/01, TAKAHASHI Masayoshi <maki / inac.co.jp> writes:

|高橋です。

|要するに、「例外を起こすのに、複数の引数を渡すにはどうすればいい
|のか」、が知りたいのでした。どうすればいいのでしょうか?

うーん,rubyの例外モデルはもっと単純なんですよねえ.

  * 例外は文字列のサブクラスである

    メッセージと型しか直接には渡せない
    さらに悪いことに例外はインスタンス変数を持てない

  * 例外の位置は $@ に格納される.

    $@を代入することにより,例外の発生位置を調整できる

というものです.ですから,この場合は

  columnは無視

  lineは$@に任せる

  sysIDに対応するのはXmlExceptionのサブクラスを作ることで対
  応する.またはメッセージに埋め込む

というのでどうでしょう.なお $@ を調整して例外を発生させるに
ためには

  $@ = caller(1)        # あるいは適当な配列を代入
  $! = XmlException.new("message")
  raise

のような使い方をします(raiseの引数を指定すると$@を上書きして
しまう).
                                まつもと ゆきひろ /:|)