高橋です。

"Simple API for XML" こと SAXのライブラリを、saxlib.pyと
SAX for javaを参考にしながら書こうと思っている(というか書きかけ
ている)のですが、rubyでの例外のクラス(のクラス定義)の扱い方が
良くわかりません。

SAXの仕様書(http://www.microstar.com/XML/SAX/spec.html)では、 
XmlException という例外のクラスが定義されており、そのインター
フェースの定義には

|public XmlException(String msg, String sid, int line, int column)
|   Construct a new instance of an XmlException. For the significance
|   of the arguments, see below.

などと書かれており、どうもjavaのSAXは Exceptionクラスのサブクラスと
して書かれています。そこで、rubyなら、

---
class XmlException < Exception

  def initialize(msg,sysID,line,col)
    @msg = msg
    @sysID = sysID
    @line = line
    @col = col
    super(@msg)
  end

  def getMessage()
    @meg
  end
(以下略)
---

などと書くのかな? とも思ったのですが、

  raise XmlException, "some msg",system_id,line,column

などと書いても、だめですよね? そもそもgetMessageはどのオブジェクトに
向かって投げればいいのやら。そうかと言って、

  e = XmlException.new("some msg",system_id,line,column)

なんてのも駄目そうでした。

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

# 古谷さんの [ruby-list:7189] での「一括置換・検索」のアイデアは
# かなりぐっときたので、そこまではなんとか実現させたいです。はい。

高橋征義 (株式会社アイナック)              Email:maki / inac.co.jp