如何拆分Exception.StackTrace并获取最后一行

时间:2015-09-23 09:46:41

标签: c# split

我有例如Exception.StackTrace:

message:Generic error:    in Npgsql.NpgsqlClosedState.Open(NpgsqlConnector context)
in Npgsql.NpgsqlConnector.Open()
in Npgsql.NpgsqlConnectorPool.GetPooledConnector(NpgsqlConnection Connection)
in Npgsql.NpgsqlConnectorPool.RequestPooledConnector(NpgsqlConnection Connection)
in Npgsql.NpgsqlConnection.Open()
in Default.Page_Load(Object sender, EventArgs e) in c:\C\myapp\Default.aspx.cs:riga 33 Failed to establish a connection to '10.1.1.1'.

但我想拥有的只是StackTrace的最后一行,即:

in Default.Page_Load(Object sender, EventArgs e) in c:\C\myapp\Default.aspx.cs:riga 33 Failed to establish a connection to '10.1.1.1'

如何拆分StackTrace才能获得此功能?感谢

3 个答案:

答案 0 :(得分:3)

通常你真的需要上下文(整个堆栈跟踪)来确定出错的地方。但是,要获得最后一行

 using System.Linq;

 var lastLine = e.StackTrace.Split('\n').Last();

e Exception

答案 1 :(得分:0)

它只是一个字符串,所以用新行拆分并从数组中取出最后一个元素?

答案 2 :(得分:0)

使用

Split()方法
        string[] lines = str.Split('\n');
        lines[lines.Length - 1];