Esistono attributi che posso applicare ai metodi di stampa in modo che tali metodi non vengano visualizzati nelle tracce dello stack? Ne ho molti e in alcuni casi hanno diversi livelli di profondità. Sono solo cose ingombranti.Come posso dire al compilatore di ignorare un metodo nelle tracce dello stack?
codiceEsempio:
class Program
{
public static void ThrowMe()
{
throw new NotImplementedException();
}
public static void HideMe()
{
ThrowMe();
}
static void Main(string[] args)
{
try
{
HideMe();
}
catch (Exception e)
{
}
}
}
Questo genera questa analisi dello stack:
a Spork.Program.ThrowMe() in C: \ Projects \ XXX \ Testing Sandbox \ ConsoleTesting \ Program.cs : linea 58
a Spork.Program.HideMe() in C: \ Projects \ XXX \ Testing Sandbox \ ConsoleTesting \ Program.cs: linea 64
a Spork.Program.Main (string [] args) in C: \ Projects \ XXX \ Testing Sandbox \ ConsoleTesting \ Program.cs: linea 70
Quello che stai chiedendo è qualcosa che è conveniente in alcuni casi e un incubo negli altri. Immagina che qualcun altro stia leggendo la tua traccia dello stack e abbia visto che 'Main' ha chiamato' ThrowMe() '. Quindi esaminano 'Main' ma non riescono a vedere dove viene effettuata la chiamata. Inoltre, immagina che 'Main' sia lungo 500 righe, quindi non è così ovvio come il tuo campione. Sono solidale con te ma alla fine questa "caratteristica" verrebbe abusata e la codifica sarebbe un incubo, ecco perché non esiste. –
Un punto eccellente. – Amy