例外処理
異常なキャプチャは、以下のように、多くのブロガーを探索することは非常に良いがあった、我々はプロジェクトを行うためのプロセスで使用される従来の方法の一つであります
https://blog.csdn.net/weixin_34291004/article/details/92389603
https://www.cnblogs.com/MrYuan/p/4800257.html
II。議論は、(トライキャッチ問題がデモを書き込む処理でエラーが発生しました)に焦点を当てました
1 試みる 2 { 3。 チャー *のPCH; 4 PCH =(チャー *)00001234 ; // 不正アドレスに投与 5。 * = PCH 6 ; // 不正アドレス割り当て、アクセス違反の例外を引き起こす 。6 STD :: COUT << " !それはOKです" << STD :: ENDL; 7 } 。8 キャッチ(CONST STD ::&例外) 。9 { 10 STD :: CERR、<< " catched " <<std ::てendl; 11 }
コードが例外をキャッチすることはできません、
以下が可能です
1 試みる 2 { 3。 チャー *のPCH; 4 PCH =(チャー *)00001234 ; // 不正アドレスに投与 5。 * = PCH 6 ; // 不正アドレス割り当て、アクセス違反の例外を引き起こす 。6 STD :: COUT << " !OKです" << STD :: ENDL; 7 } 8。 キャッチ(...) 9 { 10 STD :: CERR、<< " catched " << STD :: ENDL; 11 }
2つのコードの違いは、キャッチ(のconstのstd ::例外&)とキャッチです(...)
キャッチ(...)は、それが制御、良好な信頼性を持つソフトウェアシステム開発の異常なオブジェクトより良い手段の一種で、プログラマを提供し、例外オブジェクト複数のデータ型をキャプチャすることができます。そのため、より多くの経験を積んだプログラマは、多くの場合、その中に書かれたコードモジュールとして組織します
1つの 空隙のFunc() 2 { 3 トライ 4 { 5 // 本明細書にプログラムコード補完本当に複雑な計算、実行コード中に 6 // オブジェクトデータ型1、DataType2とDataType3タイプを投げることができます。 7 } 。8 キャッチ(データ型1&D1) 9 { 10 } 。11 キャッチ(DataType2&D2) 12は 、{ 13である } 14 キャッチ(DataType3&D3) 15 { 16 } 17 / * *************** ***************************************** 18 以上のデータ型1、DataType2とDataType3 3 tryブロックでスローされる可能性があることを注意 。19の 例外の前にあるオブジェクトの種類は、対応するcatchブロックが処理しなければなりません。しかし、なぜ 20 だけでなく、最終的に、その後はキャッチ(...)それをブロックを定義しますか?これは、より高いセキュリティと持っているためである 21を 、プロセスの信頼性は、上記のtryブロックを避けるためには、別の例外オブジェクトが考慮されていませんスロー時に発生 22の VCによって開発されたシステムでは、予期せぬ崩壊系列が発生した重大な結果を、このより具体的には効果的で、ので 23は キャッチ(...)であるシステムをキャプチャすることができ、異常であり、異常なシステムプログラマは、多くの場合、頭痛を作り、今 24は、 システム、一般的に、より複雑であるが、開発に多くの人々によって、誤って得られた 25 の他の違法な領域へのポインタ変数ポイント、事故災害不幸の結果が起こりました。キャッチ(...)など 26 効果的な救済潜在的な落とし穴を提供します。 27 ************************************************* ******* * / 28 29 キャッチ(...) 30 { 31である } 32 }