我有例如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才能获得此功能?感谢
答案 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];