在C#Stacktrace中获取短文件名(带扩展名)?

时间:2015-11-22 02:45:47

标签: c# asp.net .net stack-trace

有没有办法从C#中抛出异常时生成的StackTrace中提取短文件名?

例如,我有这个代码捕获抛出的异常并显示JavaScript警报:

try
{
     da.saveDebitCardPaymentDetails(cboDebitCardProvider.SelectedItem.Text, txtDcNum.Text, txtDcHolderName.Text, cboDdlDcard.SelectedItem.Text, 1 /*kasi test lang muna*/, 37 /*kasi test lang muna*/, 10000 /*kasi test lang muna*/);
     ScriptManager.RegisterClientScriptBlock(this, typeof(Page), "test", "alert('Your payment has been processed.');", true);
}
catch (Exception ee)
{
    string bugToTrace = (new StackTrace(ee, true)).GetFrame(0).GetFileName() + " at line " + (new StackTrace(ee, true)).GetFrame(0).GetFileLineNumber().ToString();
    ScriptManager.RegisterClientScriptBlock(this, typeof(Page), "done", "alert('Oops. Something has gone wrong. Please try again in a few moments. Cause of error: " + ee.Message.Replace("'", "") + " (" + bugToTrace + ")" + "');", true);
}

抛出并捕获异常时,将显示完整路径(不带反斜杠)。我希望它只显示,例如:AClass.cs at line 1909

编辑:这就是我所说的。 enter image description here

1 个答案:

答案 0 :(得分:1)

最简单的方法是使用Path.GetFileName Method(String)

https://msdn.microsoft.com/en-us/library/system.io.path.getfilename(v=vs.110).aspx