2016-10-14 10 views
-3

C#.Net 4.6.1コードの前にオブジェクトによってスローされたキャッチ例外... c#

私はサードパーティのライブラリを使用しています。オブジェクトを反復処理すると、ライブラリからアクセスしているプロパティが例外をスローしたため、プログラムが暴走します。

enter image description here

私のプログラムは、このコード行になるときに、例外がスローされます。

case CellType.Formula: 
{ 
    cNew.CellFormula = "IFERROR(FF3/EY3,\"\")"; 
    cNew.SetCellFormula(cOld.CellFormula); //this is where it blows up 
    break; 
} 

コードをデバッグするとき、私は例外がスローされた見ることができます。上の画像はこれを示しています。だから、私はライブラリのプロパティで何かが間違っていると知っている私は何をしたいのプロパティを使用してコードの行を打つ前にこのエラーをキャプチャし、アプリケーションと一緒に続ける。

オブジェクトの例外をチェックし、コードをスキップして何かを行う方法はありますか?たとえば:そう

try 
{ 
    cNew.SetCellFormula(cOld.CellFormula); 
} 
catch(Exception e) 
{ 
    MessageBox.Show(e.Message); 
} 

よう

if (cOld.CellFormula == Exception){ 
    // do something 
} 

ありがとうございますが、その周りにtryキャッチを置くことができます

cNew.SetCellFormula(cOld.CellFormula); 

ブレイクラインで

+0

あなたを持っています試してみましたか? –

+3

例外を処理する方法がわからないのですか?あなたがやっていることをやめてください。いくつかの初心者のC#の本を入手してください。 – Will

+1

例外が*投げられる前にそれを捕まえようとしていますか?そうではありません。もちろん、最初に例外をスローしないようにコードを構造化することはできますが、コードを変更できない場合は、例外をスローするコードを実行しないことです。つまり、Deloreanからタイムマシンを構築することです。 –

答えて

4

、これはメッセージボックスを表示しますその中にエラーテキストが表示されます

あなたは画面にメッセージを書き込みます

Console.WriteLine(e.Message); 

MessageBox.Show(e.Message); 

を交換するコンソールアプリケーションとしてこれを実行している場合(生産にそれを取ることを忘れないでください!)

+0

私はこれについて考えましたが、別の方法があれば見ていました。私が持っているコードは、すでにtry/catchブロックの外にありますが、それがヒットすると、そのショーストッパーになります。ショーストッパーがキャッチしようとするのを避けようとしています。ありがとう – BoundForGlory

関連する問題