Fehlerbehandlung, Logging und feldbezogene Validierung (Kapitel 13.2)

Zentrale Exception-Behandlung (Dispatcher.UIThread.UnhandledException,
AppDomain, TaskScheduler) verhindert Abstürze und protokolliert Fehler
über AppLogger in eine rotierende Log-Datei im App-Datenverzeichnis.
Toast-Benachrichtigungen zeigen Erfolg/Fehler global an. Alle Dialoge
mit Formularfeldern zeigen Validierungsmeldungen jetzt direkt am
betroffenen Feld statt in einem Sammel-Label.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-13 12:38:30 +02:00
co-authored by Claude Sonnet 5
parent 273f459119
commit db1afff7e4
27 changed files with 578 additions and 102 deletions
+18 -2
View File
@@ -1,12 +1,28 @@
using Avalonia;
using LehrerApp.Desktop.Services;
namespace LehrerApp.Desktop;
class Program
{
[STAThread]
public static void Main(string[] args) =>
BuildAvaloniaApp().StartWithClassicDesktopLifetime(args);
public static void Main(string[] args)
{
var logger = AppBootstrapper.EnsureLogger();
GlobalExceptionHandler.Install(logger);
try
{
BuildAvaloniaApp().StartWithClassicDesktopLifetime(args);
}
catch (Exception ex)
{
// Fehler, die den Avalonia-Nachrichtenloop selbst verlassen (z.B. beim Start),
// laufen hier zusammen — protokollieren, bevor der Prozess unvermeidlich endet.
logger.Error("Unbehandelter Fehler hat die Anwendung beendet.", ex);
throw;
}
}
public static AppBuilder BuildAvaloniaApp() =>
AppBuilder.Configure<App>()