C# WinForm wird nach einiger Zeit automatisch geschlossen?

2 Antworten

Irgendetwas hast Du, was das Programm zum Absturz bringt, bei WPF muss man das z.B. selber behandeln.
Teste das nochmal in einem kleinen Test-Projekt, ob das wirklich so ist, wie Du es erwartest, achte aber auf einen vergleichbaren Aufbau, z.B. können andere Threads einen Unterschied machen.

Thema Try-Catch:

Try-Catch ist kein Allheilmittel, Du solltest es nicht überall nutzen, nur weil da ein Fehler auftreten könnte.
Try-Catch nutzt man nur dann, wenn Du ...

  • Den Fehler tatsächlich behandeln/beheben kannst, z.B. wenn Du bei einem HTTP-Request mehrere Versuche durchführen willst/musst
  • Die Kontrolle verlieren und später nicht mehr darauf reagieren kannst, z.B. im einem Click-EventHandler, global für die ganze Anwendung oder in einem Thread

Eine Ausnahme bildet Logging, aber vergiss dann nicht, die Exception weiter zu werfen, dann aber mit "throw;" - nur "throw;" - ganz wichtig. Ich persönlich würde das aber auch nur in Ausnahmefällen machen, denn Logging wird ohne einheitliches Vorgehen schnell sehr chaotisch und wenn Du obige Regeln vefolgst, kannst Du eine Exception auch dort loggen. Und Exceptions loggt man ganz, nicht nur die Message, das Spannendste ist nämlich der StackTrace.

Ein sinnvolles Logging wird dir vermutlich auch deinen Fehler aufzeigen.

PS:

Guck mal ins Windows-EventLog, vielleicht steht da was drin.

Woher ich das weiß:Berufserfahrung

Moin,

kommt drauf an, was das auslöst - am besten den Code wieder bearbeiten und dann ggf mit Breakpoints Ausschau halten.

Woher ich das weiß:Berufserfahrung – 💻 Zertifizierter Sr. Cloud Engineer im IT-Consulting

Das Ding ist, dass alles wunderbar läuft ... Es ist im Hintergrund ein Timer, der Permanent aktiv ist. Das ganze ist eine einstellbare "Analoge" Uhr.

Es braucht wirklich sehr viel Zeit damit das alleine wieder abschaltet, von daher weiß ich nicht, ob breakpoints wirklich so hilfreich sind

0
@Dultus, UserMod Light

Das würde vermutlich nicht viel anders machen, da ja standardgemäß von C# immer ein großes Fenster kommt "ERROR", wenn man kein try und catch hat. Dieses Fenster kommt aber nicht

0