作者: 閑舎
日時: 2002/4/24(10:31)
廣島さん、ありがとうございます。うまく行きました。

Tsutomu Hiroshima <tsutomu@...> さん writes.

> C++ の catch & throw は ポインタを使ってはいけません.

ASCII の「標準C++の基礎知識」に、このようなポインタを使った例があったも
のですから(^^;。

>   catch(string strErr) {
>     cout << strError << endl;

下の strError が strErr の typo になっているようです。

 引数がが文字列型の場合と整数型の場合に異なる catch を起動しわける、と
いうことを行いたかったのですが、

#include <iostream>
#include <string>
using namespace std;

void ThrowFunc() throw(string){
  throw string("Throw exception");
}

main() {
  try {
    ThrowFunc();
    //throw int(999);
    //throw string("Throw exception");
  }
  catch(string strErr) {
    cout << "Case str: "<< strErr << endl;
  }
  catch(int intErr) {
    cout << "Case num: " << intErr << endl;
  }
  cout << "being continued..." << endl;

  return 0;
}

とするとうまくいきました。throw int とか throw string とかで型を指定する
のですね。勉強になりました。

--
本田博通(閑舎)
Hiromichi Honda <raku@...>