2010-06-11 54 views
-4

嗨,我有一個問題,我有一些代碼,如70%的計算機上使用它的作品很好,但..由於某些原因theres幾個討厭和編號喜歡做這樣的事情(請記住這是一個假設)如果沒有錯誤contiune ..如果錯誤問題其他

private void test_click(object sender, EventArgs e) 
{ 
    MessageBox.Show("hi"); 
    //if it works ok without a error it continues to 
    MessageBox.Show("worked ok"); 
    //if it encountered a error of some kind it would go to 
    MessageBox.Show("DID NOT WORK OK"); 
} 
+0

好的,但是你需要什麼幫助? – nos 2010-06-11 08:30:26

+0

你可以在這個問題上更精確嗎? – Chinjoo 2010-06-11 08:31:14

+2

70%?不錯! – anthony 2010-06-11 08:31:17

回答

4

try-catch(或try-catch-finally)?

private void test_click(object sender, EventArgs e) 
{ 
    MessageBox.Show("hi"); 
    try 
    { 
    //if it works ok without a error it continues to 
    MessageBox.Show("worked ok"); 
    } 
    catch(Exception) 
    { 
    //if it encountered a error of some kind it would go to 
    MessageBox.Show("DID NOT WORK OK"); 
    } 
} 

注意:這裏我用一個全球catch(Exception)應小心使用,只有!對於測試方法,這不是問題,但不要在生產代碼中執行此操作。你至少應該在那裏指定預期的例外,並考慮如何處理這種情況。

+1

+1。我發佈了幾乎完全相同的答案(但是我的速度更慢)。**注意:**您可以將catch(Exception)簡化爲'catch'。這就是說,我同意在大多數情況下,這不是一個好主意。代碼只能捕獲它知道如何處理的異常;所有其他異常(即大多數)不應被捕獲,或者至少應該使用'throw;'重新拋出。 – stakx 2010-06-11 08:37:38

+0

+1爲一個糟糕的問題提供有用的答案! – 2010-06-11 09:19:12

+0

就像一個PRO工作 – NightsEVil 2010-06-12 21:59:24

1

我會建議日誌信息,而不是彈出消息。

0

你可以使用try catch。

0

當你說它不起作用時,你的意思是它會拋出一個異常,或者它只是在沒有任何解釋的情況下默默地失敗?

如果它拋出一個異常,你應該使用類似

private void test_click(object sender, EventArgs e) 
{ 
    try 
    { 
     MessageBox.Show("hi"); 
     MessageBox.Show("worked ok"); 
    } 
    catch(WheteverExceptionType ex) 
    { 
     MessageBox.Show("DID NOT WORK OK"); 
     // you can also access the properties of the thrown exception "ex" here... 
     MessageBox.Show(ex.Message); 
    } 
} 
+0

我明白你想要顯示這一點的代碼(因爲它是在寫這篇文章的時候),但請注意'MessageBox.Show()'最有可能*永遠不會拋出任何例外。因此,在這種情況下,'catch'塊被浪費了時間。除了顯示消息框外,您還需要做其他事情。 – stakx 2010-06-11 08:44:40

+0

絕對同意。從OP發佈的代碼中,我認爲他正在嘗試做一些不重要的事情,而不是發佈他將MessageBox.Show()代碼放在其位置的細節。如果這個假設扭曲,向OP表示歉意。 :) – ZombieSheep 2010-06-11 08:53:57

0

本質:

try { 
    MessageBox.Show("hi"); 
    DoSomethingThatMightFail(); 
    MessageBox.Show("worked ok"); 
} catch (DoSomethingFailedException e) { 
    MessageBox.Show("Something did not work: " + e.Message); 
}