2011-10-04 9 views
9

スローされた例外の後で、悪いコードブロックの実行を許可する方法はありますか?C++、例外を無視してコードを続行しますか?

現在、私のコードには、whileループが連続しています。このwhileループ内のコードは、範囲外のエラーを発生させることがあります。私はこの特定の例外の原因を追跡することができませんでしたが、whileループ内のコードが何度も何度も繰り返し実行されるため、最終的にはそれほど問題にはならず、次の繰り返しは以前の繰り返しに依存しません。いずれにしても。

whileループ内のコードがクラッシュした後、これをwhileステートメントの先頭からやり直したいと思います。

C++でこれを実現する方法はありますか? try/catchはこのような状況では動作しないようです。

その他の情報:whileループ内でコードを実行し、独自の実行可能ファイルにして、whileループをbashスクリプトに入れたいと思っていますが、各反復に必要なデータがあり静的である

while(true) 
{ 
    try 
    { 
      // your code 
    } 
    catch (Exception e) { /* Please, at least do some logging or other error handling here*/ } 
} 
+2

ループのスコープ内で例外をキャッチし、そこから続行します。しかし、実際には、問題の根本原因を見つける必要があります。 – Chad

+0

ご覧になるにはいくつかのコードを投稿してください。 try {} catch(){}は、堅牢なアプリケーションが必要な場合は標準にする必要があります。 – user710502

+0

例外は例外的であり、処理する必要があります。あなたが問題を追跡できない場合でも。 – Griwes

答えて

12

内のループはあなただけのwhileループ内の例外をキャッチする必要がありながら、データたびに私は私の無限を行うことを余儀なくしていますことを再ロードに時間がかかりすぎますあなたがする必要があるのはデバッグのコードですおそらくコードをデバッガ内で実行し、問題の内容を診断することができます。敷物の下の問題を押してもそれは消えないし、プログラムはまだバグが多い。

一方、問題は本当に例外なく、実現可能である何かである場合には(、ファイルを開くネットワーク上でパケットを送信し、潜在的に失敗する可能性があり何が、--asに期待されていません考えますは決してになるはずです)と比較すると、try/catchアプローチが有効です。

+1

'} catch(std :: out_of_range&exc){std :: cerr << exc.what(); } ' –

+0

その' catch'の中に例外タイプがありません。私はキャッチのための彼の動機は良いデザインではないので 'キャッチ(...)'を提案したいと思います。 –

+2

これは有効な構文ですか? 'catch 'の後ろに括弧を入れずにtry catch文を試してみると、' error:expected'( 'before' {'token')です。 – HelloGoodbye

1

最初のもの:C++

0

コードのスニペットを投稿することができれば、私たちは皆さんをもっと助けることができます。 一般的には、あなたが常にエラーのいくつかの並べ替えは、それが{}キャッチ{}試してみることかどう取り扱ういるかだけのような変数をチェックする必要があります

while(true) 
{ 

if(flag == "Error") 
{ 
//error handle 
} 

else 
{ 
//continue with code execution 
} 

} 

は、あなたがこの問題を解決を取得願っています!

関連する問題