2017-02-20 85 views
0

我正在製作一個程序,它需要輸出任何發生的錯誤,但及時發現,它是一個密碼恢復程序。C#簡單異常輸出

如何更改異常文本變量,它可能是一個字符串,只有實際異常減去所有不需要的東西。

catch(Exception EX) 
{ 
    Console.ForegroundColor = ConsoleColor.Red; 
    Console.WriteLine("AN ERROR OCCURED IN COPYING CHROMEPASSFILE: " + EX); 
    Console.ForegroundColor = ConsoleColor.Green; 
} 

輸出:

AN ERROR OCCURED IN COPYING CHROMEPASSFILE: System.IO.IOException: The file 'C:\Users\Anonymous\Desktop\E_TEST\logindata.' already exists. 
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) 
at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite, Boolean checkHost) 
at System.IO.File.Copy(String sourceFileName, String destFileName) 
at Recover_All_Passwords.Program.Main(String[] args) in C:\Users\Anonymous\Documents\Visual Studio 2015\Projects\Recover_All_Passwords\Recover_All_Passwords\Program.cs:line 27 

我怎麼能只輸出第一線,沒有那些 「在(S)」?

剛注意到異常標記說,我引用「一個例外是很少發生(例外!)的情況,需要偏離程序的正常流程。

編輯

是,堆棧跟蹤是非常有幫助的,但是我也只需要錯誤消息,因爲用戶不會感興趣的東西,但什麼實際上已經失敗了。

+1

更換' Console.WriteLine(「複製CHROMEPASSFILE時發生錯誤:」+ EX);用'Console.WriteLine'(「複製CHROMEPASSFILE時發生錯誤:」+ EX.Message);' –

回答

4

而不是使用EX,使用異常的Message屬性。

所以,你的代碼就變成了:

Console.WriteLine("AN ERROR OCCURED IN COPYING CHROMEPASSFILE: " + EX.Message); 

對於未來的參考, 「在(S)」 是StackTrace非常可用於確定您的應用程序是打破..

+0

謝謝你,那可行。我意識到at(s)是有用的,但是這是一個「快速部署」實用程序。我可能會讓該程序在運行後具有該程序的高級統計信息的同一位置創建一個txt文件 – Beall619