Hallo!
Ich weiss, diese Frage ist bestimmt schon 1000 mal gestellt worden.
Aber bei der Fragestellung wurde es nie auf den Punkt gebracht.
Ich mache in C# eine Datenbankabfrage, die mitunter sehr lange dauert.
Die Treffer werden zur Ansicht auf einem Console-Fenster angezeigt.
Hin und wieder gibt es eine Fehlermeldung, die ebenfalls kurz auf dem Console-Fenster erscheint
Nur wird dann das C# Programm daraufhin unmittelbar geschlossen.
Dabei schließt auch unmittelbar das Console-Fenster,
so dass ich keine Zeit habe, die Fehlermeldung lesen zu können.
Das muss ich aber, um das Programm korrigieren zu können!
In einigen Fällen gelang es mir mit einem Handy-Video, aber nicht immer.
Gibt es irgend einen Trick, um an die Fehlermeldungen zu kommen ?
Console.ReadKey() greift hierbei nicht.
Vielen Dank und herzliche Grüße aus Norddeutschland!
Eyck Blank
Du könntest die Fehlermeldung Loggen, z.B. in eine Datei. Am besten mithilfe eines ordentlichen Logging und Exception Handling Konzeptes.
Wie startest du denn die Anwendung? Per Doppelklick?
Wenn du sie aus einer Console startest, siehst du auch alle ausgaben.
Danke!
Ich starte die Anwendung aus dem FileExplorer mit Doppelklick.
VD + HG
EB
Da ich ein C# Anfänger bin,
wie mache ich ein Fehler-Logging ?
Geht etwas mit dem MessageBox-Fenster ?
VD EB
Geht etwas mit dem MessageBox-Fenster ?
Nicht in einer Konsole-Anwendung. Deswegen ist es eine Konsolenanwendung.
Hin und wieder gibt es eine Fehlermeldung, die ebenfalls kurz auf dem Console-Fenster erscheint
Nur wird dann das C# Programm daraufhin unmittelbar geschlossen.
Das liegt an der Art und Weise, wie Konsolenapplikationen funktionieren.
Wenn eine Exception in der Konsole erscheint, dann meinst Du offenbar eine unbehandelte Ausnahme aka eine Exception, die Du nicht abfängst.
Das Resultat ist, dass die Applikation abstürzt und sich der Prozess beendet.
Damit schließt Windows automatisch das Fenster.
2 Varianten:
Mehr dazu in den Basics
Exceptions and Exception Handling
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Danke Abt!
Es wäre schön zu wissen, welcher Fehler und wo dieser auftritt.
Mehr dazu in den Basics
Exceptions and Exception Handling
Ich nehme an, dass es irgend welche fehlerhaften Einträge in der Datenbank gibt.
So war es in den Fällen, die ich klären konnte.
- Du machst ein Try-Catch um die gesamte Anwendung (in der Main Methode), sodass Du die Exception abfängst (damit stürzt die Anwendung auch nicht mehr ab, und Du kannst drauf reagieren), ausgibst und mit Console.ReadKey()) das automatische Schließen verhinderst.
Obenstehendes habe ich auch probiert, hat aber das Programm nicht am Schließen gehindert.
VD + HG
EB
Dann solltest Du an den notwendigen Stellen vorher Exceptions abfangen und verarbeiten, dann kannst es genau lokalisieren.
Ein allgemeines Exception Handling um die gesamte Anwendung ist nur der aller letzter Punkt, wo ein Absturz der Anwendung verhindert werden kann.
Siehe: Behandeln und Auslösen von Ausnahmen in .NET
Was der Grund einer Exception ist, steht immer im Stack Trace, sofern man ihn nicht selbst verfälscht.
Obenstehendes habe ich auch probiert, hat aber das Programm nicht am Schließen gehindert.
Dann hast Du es falsch gemacht.
Hab Dir deswegen den Link gegeben, weil da 1:1 ein Beispiel drin steht.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Danke Abt!
Werde nun eine Weile brauchen, dieses auszuprobieren.
VD + HG
EB