Globaler Ausnahmebehandler in CLR Stored Procedure

8

Ich benutze C # und Sql Server 2008 und ich habe einige try / catch Blöcke in meiner CLR Stored Procedure und diese werden abgefangen. Diese werden in einer Datei protokolliert und geben einen Code-Fehler und eine Nachricht mit SqlPipe zurück. Diese arbeiten Bußgelder. Jetzt muss ich dasselbe tun, wenn ich einige nicht abgefangene Fehler habe, besonders um eine Ablaufverfolgung in der Protokolldatei zu haben!

Ich habe versucht, Application.ThreadException zu verwenden, aber diese Klasse ist nicht in der CLR Stored Procedure (WinForms) verfügbar. Muss ich in meiner Eingabe Sql Procedure Methode einen ungezogenen try / catch Block verwenden oder gibt es etwas Besseres zu tun?

Danke.

    
Dan 10.02.2011, 10:38
quelle

2 Antworten

1

Wie ich mich erinnere, speichert SQL Server nicht behandelte Ausnahmen in seiner eigenen Protokolldatei und gibt sie an den Benutzer zurück. Vielleicht möchten Sie sich das genauer ansehen.

    
Michael Kjörling 10.02.2011 10:48
quelle
1

Am saubersten ist es, einen try..catch-Block in der aufgerufenen CLR-Methode zu verwenden. Noch besser wäre es, die Hauptfunktionalität in einer separaten Methode zu belassen, die von der CLR-Eingabemethode aufgerufen wird:

%Vor%     
Keith 24.06.2011 19:02
quelle