2017-02-20 20 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 

どのようにすることができますI出力だけが最初の行とそれらの "AT(S)" のどれ?

例外のタグに気付きましたが、「例外は、プログラムの通常のフローからの逸脱を必要とする(例外的な)状態はめったに発生しないです。

編集

はい、スタックトレースは、ユーザーが実際に失敗していたものが、何に興味がないので、しかし、私はエラーメッセージのみを必要としていた非常に便利です。

+1

置き換え ' Console.WriteLine( "コピーするクロマパスファイルにエラーがあります:" + EX); '+ EX.Message);' –

答えて

4

EXを使用するのではなく、例外のプロパティを使用します。

だからあなたのコードは次のようになります「(S)で」StackTraceあると判断するための極めて便利ですアプリケーションが破壊され、将来の参考のため

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

..

+0

ありがとうございます、それは動作します。 at(s)は便利だが、これは「クイックデプロイ」ユーティリティです。私はプログラムが実行後にプログラムの高度な統計を持っている同じ場所にtxtファイルを作成することがあります – Beall619