VC++例外処理教えてください!
■ このスレッドは過去ログ倉庫に格納されています
0001ATL大嫌い
NGNGtry{
char neme[5];
memcopy( &name[0], "aaaaaa", 6 );
}
catch(...){
}
上のようなソースでキャッチの時に
なんの例外がおきたか知りたいんですけど
キャッチは省略系以外使用不可で、
しかもMFCも使用不可という規則で縛られて
どうしたら良いかわかりません。
いろいろ調べたのですが、MFCを使用する方法と
Cの例外取得は判明したのですがC++の場合が
全然乗ってないんですよ。
どうかご教授願います。
(上の命令なんで・・・ふぅ〜)
0002ATL大嫌い
NGNGmemcopy -> memcpy です。
0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNGおめでてーな
0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNG_set_se_translatorをつかって自分で例外クラスに変換する。
あとは、その自作例外クラスをキャッチすればいいだろう。
何?catch(...)しか使ってはいけない?
グローバル変数でもつかって例外コンテキスト保存しとけ。
0007デフォルトの名無しさん
NGNGいっとることがいまいち解らんが・・・
とりあえず、throwはどこにある?
00086
NGNG次からは糞スレ建てるんじゃねーぞ。
0009デフォルトの名無しさん
NGNGというわけで、例外について語るスレになりました。
0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNGとりあえずは動くぞ
0012デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNGもう絶対強制終了なら例外
0015デフォルトの名無しさん
NGNG私は
エラーを処理するのが、コールスタックですぐ上にあるヤツならエラーコード、遥か彼方にいるなら例外。
エラーが発生するのが前提ならエラーコード、エラーが発生したら致命的な(回復処理をしないと、まとも
に実行を続けられない)場合には例外。
ってな感じだが。
エラーコードだと伝えられる情報がたかだか int 程度だけど、例外を投げる場合にはオブジェクトに必要なだ
け詰め込める上、階層化できるので、ライブラリの奥底で発生した問題をライブラリを利用する側に伝える場
合には例外を使うことが多い。
0016デフォルトの名無しさん
NGNG確かに自分も失敗前提で継続したいときはエラーコード使ってました。
ライブラリみたいな用途には例外がいいのですか。
ふむふむ。
0017デフォルトの名無しさん
NGNGこいうときこそ例外を使う!みたいなの。
0018デフォルトの名無しさん
NGNGっていうのも気になる。
0019デフォルトの名無しさん
NGNG失敗は例外で出すしかないとおもうけどな。
>18
大抵、広域goto状態になるのでは、と思ったり。
0020デフォルトの名無しさん
NGNG>こいうときこそ例外を使う!みたいなの。
I/Oのエラー処理こそ、まさに例外のためにあると思う。
デバイス上での入出力ストリーム演算子(<<,>>)なんて、
例外処理があって初めて使えるものだし。
0021ななしぃ
NGNGMFC見てると、昔はgotoつかってた部分が、例外に置き換えられてたり
するのでありなのでは?
0022デフォルトの名無しさん
NGNG0023デフォルトの名無しさん
NGNGそういう使い方もありなのかな、と。
あ、C++はアンワインドプロテクトが無い(かわりにディストラクタが使えなくもない)から、使い道は狭くなるかもだけど。
■ このスレッドは過去ログ倉庫に格納されています