fix(logos): unerwartete Fehler beim Vorbereiten eines Logos in die Konsole
Schlussreview F6. prepareLogo machte aus jedem Fehler außer seinen eigenen („leer“, „zu klein“ …) die Meldung „Das Logo konnte nicht gelesen werden.“ und verlor dabei den Anlass (Fehler des Browsers beim Zeichnen, Dekodierfehler): bei einer Rückmeldung eines Nutzers war nichts mehr nachzuvollziehen. - Vor dem Umwandeln steht jetzt genau eine console.warn mit dem Originalfehler. Der Text für den Nutzer bleibt unverändert (in beiden Sprachen). Fehler mit eigener Meldung (LogoError: Typ, Größe, zu viele Pixel, leer, zu klein, kein Canvas, kein PNG) sind erwartet und warnen nicht. - Tests: Browserfehler beim Zeichnen (Raster und SVG), Dekodierfehler, Englisch, keine Warnung bei den erwarteten Fehlern und bei Erfolg. Die Tests der Gruppe „Bild und Canvas gestellt“ ersetzen console.warn durch eine Attrappe, damit die Ausgabe sauber bleibt. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
df1cf29d42
commit
4232afdf35
2 files changed
+78
-4
No files matched your search
@@ -268,6 +268,10 @@ export async function prepareLogo(file: File): Promise<PreparedLogo> {
|
||||
hasTransparency: hasTransparency(out.ctx.getImageData(0, 0, size.w, size.h).data),
|
||||
};
|
||||
} catch (err) {
|
||||
throw err instanceof LogoError ? err : new LogoError(t(LOGO_READ_MESSAGE));
|
||||
if (err instanceof LogoError) throw err;
|
||||
// Alles andere (Bild nicht ladbar, Fehler des Browsers beim Zeichnen …) heißt für den Nutzer „nicht lesbar“; für die Fehlersuche bleibt
|
||||
// der eigentliche Anlass in der Konsole.
|
||||
console.warn('Logo konnte nicht vorbereitet werden', err);
|
||||
throw new LogoError(t(LOGO_READ_MESSAGE));
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user