Kürzlich habe ich ein Interview besucht. Ein Code-Schnipsel wird mir gegeben. Ich weiß, der Interviewer hat es aus Albharis Threading-Probe genommen.Ausnahmebehandlung in Threads
public static void Main()
{
try
{
new Thread (Go).Start();
}
catch (Exception ex)
{
// We'll never get here!
Console.WriteLine ("Exception!");
}
}
static void Go() { throw null; }
Die Modifikation des obigen Code als
public static void Main()
{
new Thread (Go).Start();
}
static void Go()
{
try
{
...
throw null; // this exception will get caught below
...
}
catch (Exception ex)
{
Typically log the exception, and/or signal another thread
that we've come unstuck
...
}
}
würde die guten Kandidaten sein, die Ausnahme zu behandeln.
Ich bin gebeten worden, „Mit Ausnahme der obigen Spur, was die anderen Alternativen sind, würden als gute Lösung passen ?. Es ist schwer war die Alternative zu finden, so dass ich hier heben sie Ihren Vorschlag zu sammeln.
... aber darüber im Klaren sein, dass Sie nicht die Ausnahme in AppDomain.UnhandledException verarbeiten können, Sie benachrichtigen, aber die Anwendung wird sowieso abgeschaltet werden . – Lucero
Es ist möglich, das Beenden der Anwendung zu verhindern, indem Sie den Kompatibilitätsmodus v1.x einstellen. Dazu muss ein -Element zu app.config im