Article View: japan.comp.lang.visual-c++
Article #29Re: [VC++5.0]try、catch、throw(例外処理)の使い方は?
From: 電子のお針箱
Date: Sat, 01 Apr 2000 00:00
Date: Sat, 01 Apr 2000 00:00
59 lines
2709 bytes
2709 bytes
Kou Yamanaka <kou-yamanaka@aichi.email.ne.jp> wrote in message
news:8c43e7$154$1@father.asahi-net.or.jp...
> VC++5.0を使っているのですが、
> try,catch,throw(例外処理)の使い方がよくわかりません。
> 次のようなコードを書いている場合、
> どのようにして例外処理を使ったらいいのでしょうか?
例外処理を使うには、例外が発生する可能性のあるところを try で囲んで、その
ブロックの直後に例外処理ルーチンを catch() で指定します。また、メモリー不足
等のエラーを検出したら throw ステートメントで例外を発生させます。
と言うことで、こんな感じかな...
static char *xnew(size_t size)
{
char *p = new char[size];
if(p == NULL){
throw 0; // 例外の発生 (オペランドの 0 はダミーです。)
}
return p;
}
BOOL Sample(size_t size1, size_t size2)
{
BOOL bRet = FALSE;
char *pBits[DATA_SIZE];
for(int i = 0; i < DATA_SIZE; i++){
pBits[i] = NULL;
}
// ...
try { // 例外が発生したら catch() へ制御を移す...
pBits[0] = xnew(size1);
// ...
pBits[1] = xnew(size2);
// ...
bRet = TRUE;
}
catch(int x){ // 例外が発生したらここへ来る...
}
i = DATA_SIZE;
while(0 < i--){
if(pBits[i] != NULL){
delete [] pBits[i];
}
}
return bRet;
}
なお、throw ステートメントのオペランドで指定した値は catch() ルーチンの引
数として渡されます。今回は、特に渡すべき値が無いのでダミーとして 0 を渡して
います。
--
--------------
電子のお針箱
ueno@di.mbn.or.jp
(From: ヘッダーはスパム対策のため -nospam を付加しています。)
--------------
Technical Details
Message-ID:
<8c4hep$gsi$1@newsjp.mbn.or.jp>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<8c43e7$154$1@father.asahi-net.or.jp>Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS X-Google-Thread: 10a2c7,75a98fe59882a168 X-Google-Attributes: gid10a2c7,public X-Google-Thread: f71b3,75a98fe59882a168 X-Google-Attributes: gidf71b3,public From: 電子のお針箱 <ueno-nospam@di.mbn.or.jp> Subject: Re: [VC++5.0]try、catch、throw(例外処理)の使い方は? Date: 2000/04/01 Message-ID: <8c4hep$gsi$1@newsjp.mbn.or.jp> X-Deja-AN: 605188587 Content-Transfer-Encoding: 7bit References: <8c43e7$154$1@father.asahi-net.or.jp> X-Priority: 3 Content-Type: text/plain; charset="iso-2022-jp" X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2615.200 X-Complaints-To: news@mbn.or.jp X-Trace: newsjp.mbn.or.jp 954583321 17298 210.144.154.107 (1 Apr 2000 10:02:01 GMT) Organization: MediaBank,Tokyo,JAPAN X-MSMail-Priority: Normal Mime-Version: 1.0 NNTP-Posting-Date: 1 Apr 2000 10:02:01 GMT Newsgroups: japan.comp.lang.visual-c++,fj.comp.lang.c++