哪个Catch Execption要使用?

问题描述:

我不想使用try和catch检查复选框R1P1时,弹出消息框。但是我不知道把什么放在catch里面()。哪个Catch Execption要使用?

private void button2_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      if (R1P1.Checked) 
      { 
       string Plats1 = "R1P1"; 
       TxtP.Text = Plats1; 
      } 
      else 
      { 
       TxtP.Text = null; 
      } 
     } 
     catch (???) 
     { 
      MessageBox.Show("Hey"); 
     } 

我试过catch(R1P1.Checked == false;)但它不工作。 在程序中,您有一堆票系统的复选框,当您不检查任何人时,无论如何请单击继续,我希望复选框出现。

+2

你不抓住条件 - 你赶上* *例外。没有任何迹象表明这里有例外情况或需要例外。 – 2013-05-12 11:42:35

+0

Try/Catch块不常用于流量控制。在某些情况下,他们可以像这样使用,但你的不是其中之一。 – Dirk 2013-05-12 11:42:47

+1

似乎你不能在这个特定的场景中使用try和catch。感谢您的回答和评论! – user2367396 2013-05-12 11:50:21

请告诉我尝试捕捉呢?这是行不通的:

private void button2_Click(object sender, EventArgs e) 
{ 

     if (R1P1.Checked) 
     { 
      string Plats1 = "R1P1"; 
      TxtP.Text = Plats1; 
     } 
     else 
     { 
      TxtP.Text = null; 
      MessageBox.Show("Hey"); 
     } 
} 

好点乔恩! AFAIK {}定义了一个代码块,它有自己的范围:当你点击右括号时,通常在它们之间声明的任何内容都不再存在。这个男人的字符串Plats1从来没有使用过,无法在其他地方看到。

使这个相同:

private void button2_Click(object sender, EventArgs e) 
{ 
     if (R1P1.Checked) 
     { 
      TxtP.Text = "R1P1"; 
      //anything declared here (i.e. a new variable) 
     }//is gone by here 
     else 
     { 
      TxtP.Text = null; 
      MessageBox.Show("Hey"); 
     } 
} 
+1

理想情况下,没有无意义的局部变量'Plats1' :) – 2013-05-12 11:42:56

+0

使用try和catch的目的是为了更高的成绩... – user2367396 2013-05-12 11:43:09

+1

@ user2367396:然后你应该找到一个不同的例子,其中例外*是*合适的。 – 2013-05-12 11:43:39

在这种情况下,try{}catch{}块根本没有点。

为什么要抓住一个例外呢?

你已经知道时不会检查它 - 只要调用消息框,您else条款:

if (R1P1.Checked) 
{ 
    TxtP.Text = "R1P1"; 
} 
else 
{ 
    TxtP.Text = ""; 
    MessageBox.Show("Hey"); 
}