2012-03-22 10 views
1

可能性の重複:
How to catch exceptionsのtry/catchの例外

私は実際に試してみて、例外をキャッチ使用することがありませんでした。私は潜在的なエラーをトラップするためにtry/catchを使用しようとしています。今、私は

divide d; 
    private void button1_Click(object sender, EventArgs e) 
    { 
     d = new divide(int.Parse(textBox1.Text), int.Parse(textBox2.Text)); 
     int total = d.CalculateDivision(); 
     MessageBox.Show(total.ToString()); 
    } 

は今、私は

try 
{ 

} 
catch 
{ 
MessageBox.Show("error"); 
} 

または私は追加することになりますと、ここの下にそれを置くだろう...どこ試みを入れて、これは私が今持っているコードでキャッチすることを確認していないですコード内のどこかで試してみてください。

+0

どこに問題がありますか? 「新しい分裂」とは何ですか? – gdoron

+1

あなたはtry/catchが少しコストがかかることを知っています。したがって、TryParse APIを使用して、例外を回避するために上記のコードにリファクタリングを少し行うことができます。 – Zenwalker

+0

Webアプリケーションの場合、Global.asaxでApplication_Errorイベントを使用できます。http://stackoverflow.com/questions/9806832/general-exception-handling-without-global-asax-file – Flowerking

答えて

2

http://msdn.microsoft.com/en-us/library/ms173160.aspx

を参照してくださいtryは、例外がスローされたコードを一周し、値が処理されます。あなたの例では:

divide d; 
private void button1_Click(object sender, EventArgs e) 
{ 
    try 
    { 

    d = new divide(int.Parse(textBox1.Text), int.Parse(textBox2.Text)); 
    int total = d.CalculateDivision(); 
    MessageBox.Show(total.ToString()); 
    } 
    catch(Exception) 
    { 
    MessageBox.Show("error"); 
    } 
} 

例外がない場合にのみ、合計を表示することができます。

1

いいえ、そうです;)。 ちょうどあなたがそこに私たちを示したもののようにそれを使用する:

try 
{ 
    // Your Code. 
} 
catch (Exception ex) 
{ 
    MessageBox.Show(ex); 
} 
0

あなたはこのようなものだろう:

private void button1_Click(object sender, EventArgs e) 
{ 
    try 
    { 
     d = new divide(int.Parse(textBox1.Text), int.Parse(textBox2.Text)); 
     int total = d.CalculateDivision(); 
     MessageBox.Show(total.ToString()); 
    } 
    catch(Exception error) 
    { 
     MessageBox.Show(error.Message); 
    } 
} 
1

あなたはそれを引き起こしている可能性があるかについて、いくつかのより多くの情報を得るために、これを行うことができますが、例外がスローされた場合はかなり、答えを持っている:

try 
{ 
    //your code: 
    d = new divide(int.Parse(textBox1.Text), int.Parse(textBox2.Text)); 
    int total = d.CalculateDivision(); 
    MessageBox.Show(total.ToString()); 
} 
catch (Exception ex) 
{ 
    MessageBox.Show("Error has occured! " + ex.Message); 
} 

もう一つのヒントについて、あなたは学んでいるとして、あなたが見てのために例外処理ついにブロックを見てみることで、これは例外があったかどうかに関係なく実行されます、それはtryおよびcatchブロックの後に行く:

finally 
{ 
    // this code will always execute, maybe do some cleanup here 
}