C#简单异常输出

时间:2017-02-20 19:50:21

标签: c# security exception exception-handling

我正在制作一个程序,需要输出发生的任何错误,但要及时,这是一个密码恢复程序。

如何将异常文本变量(可能是字符串)更改为仅实际异常减去所有不需要的东西。

 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

如何只输出第一行而不输出#34; At(s)"?

注意到异常标记说,我引用"异常是很少发生(异常!)条件,需要偏离程序的正常流程。&# 34;

修改

是的,堆栈跟踪非常有用,但是我只需要错误消息,因为用户除了实际失败之外什么都不会感兴趣。

1 个答案:

答案 0 :(得分:4)

不要使用EX,而是使用Exception上的Message属性。

所以你的代码变成了:

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

为了将来参考,“at(s)”是StackTrace非常可用于确定应用程序的中断点。

相关问题