public static string Thrower(Exception ex)
{
string[] trace = MethodNames(ex.StackTrace);
if (trace.Length == 0)
{
return "unknown function";
}
string res = "";
foreach (string t in trace)
{
if (PresetNamespaces.Any(ns => t.StartsWith(ns)))
{
res = trace[0];
}
else
{
res = t;
break;
}
}
// strip namespace for clarity
var res2 = Regex.Match(res, @"\w+\.{1,2}\w+$").Value;
if (res2.Length > 0)
{
return res2;
}
return res;
}