2014-02-11 28 views
0

我有使用密碼的函數,當我運行程序時,函數中的錯誤沒有出現在我放在catch上的消息框中,如何在給出錯誤的行上給出錯誤?如何在我的函數行中發出錯誤

public void CheckContent(string FileExe, string password) 
{ 
try 
    { 
     SevenZipExtractor szip = new SevenZipExtractor(FileExe, password); // <-- error if wrong password 
     foreach (ArchiveFileInfo file in szip.ArchiveFileData) 
     { 
      string NamaFile = file.FileName; 
      string format = file.Extension; 
      string[] row; 
      row = new string[] { NamaFile, format }; 
      DGVDekripsi.Rows.Add(row); 
     } 
    } 
    catch (IOException ex) 
    { 
     MessageBox.Show(this, ex.Message, "Proses Cek Isi File Exe", MessageBoxButtons.OK, MessageBoxIcon.Error); 
    } 
} 
+2

請您澄清一下嗎? –

+1

將'catch(IOException ex)'改爲'catch(Exception ex)' – Jonesopolis

+0

@好吧,我運行這個函數,輸入了錯誤的密碼,然後這個錯誤沒有出現,就像我在'** catch * *',如果錯誤在消息框中顯示錯誤消息,並且行中的錯誤寫入註釋'< - 錯誤密碼錯誤'。 – sloqye

回答

4

或許拋出異常的類型不同於IOException,你的catch塊將只捕獲IOException's。試試這個:

catch (Exception ex) 
{ 
    MessageBox.Show(this, ex.Message, "Proses Cek Isi File Exe", MessageBoxButtons.OK, MessageBoxIcon.Error); 
} 

如果你寫ex.GetType()你會看到exception.Then的類型,如果你願意,你可以添加額外的導管塊捕獲該異常,您可以妥善處理。

+0

感謝您的答案和解釋陽離子。它的工作 – sloqye

+0

恭喜獲得10K代表:) – puretppc

+1

@puretppc謝謝:) –

1

你確定你的異常增加了嗎?或者這是一個普遍的例外,你跟蹤了嗎? 我認爲你有一個正常的例外而不是IOException

+0

對,我錯過了,換成Exception。 – sloqye

相關問題