Moin,
ich habe mir überlegt einen flexiblen ErrorManager zu schreiben. Dazu möchte ich sowas machen wie
ErrorManager.Begin(SektionID);
//critical Code
...
ErrorManager.Log("some log message");
ErrorManager.End(SektionID);
Gibt es da eine Möglichkeit fehler abzufangen, die auf den Try-Catch-Block verzichtet?
Willst du generell auf try/catch verzichten? Oder nur nur im Code, der den ErrorManager verwendet?
Wenn ja: Guck dir mal Application.SetUnhandledExceptionMode-Methode und das Application.ThreadException-Ereignis an. Siehe auch Verhindern, dass bei nicht verwalteten Exceptions Standarddialogfelder aufpoppen.
Ansonsten: Übergebe dem ErrorManager ein Delegat des Codes der Sektion. Dann muss nur dein Manager das try-catch machen (dann musst du auch nicht explizit Begin und End aufrufen).
Z.B.:
ErrorManager.Watch(SektionID,delegate
{
//critical Code
...
});
Hallo Pria,
wenn das ErrorManager.Begin und ErrorManager.End ein Ersatz für try {
und }
sein soll, dann wirst du das wohl nur mit einem Tool wie PostSharp hinbekommen, das das try/catch nachträglich (und für den Programmierer transparent) in den IL-Code einfügt.
herbivore