String als Fehler in Swift
Am 18.08.2021 um 20:15von , Kategorie: Blog, Tags:
Fehler sind essentiell in jedem Programm. In Swift erstellt man dafür normalerweise ein Fehler-Enum:
enum MeinEigenerFehler: Error {
case eins
case zwei
}
Hat man eine Fehler-Struktur erstellt, kann man diese relative einfach nutzen:
throw MeinEigenerFehler.eins
Leider ergibt das noch keine ordentliche Fehlerbeschreibung. Möchte man nun eine saubere Fehlerbeschreibung und diese z. B. dem Nutzer anzeigen, so muss man diese Beschreibung noch zusätzlich angeben:
extension MeinEigenerFehler: LocalizedError {
var errorDescription: String? {
switch self {
case .eins:
return "Fehler eins"
case .zwei
return "Fehler zwei"
}
}
}
Für größere Projekte ist das ist definitiv die beste Lösung. Man kann direkt auf einen Fehler prüfen error = MeinEigenerFehler.eins
und bekommt eine ordentliche Fehlermeldung angezeigt, wenn man den Fehler als String zurück gibt.
Für kleinere Projekte bedeutet das aber, dass man relativ viel Code schreiben muss, wenn man viele kleine Fehlermeldungen hat. Das artet dann schnell in vielen Fehler-Strukturen, mit einer Menge Code.
Um sich das Leben ein wenig leichter zu machen, kann man jedoch auch direkt eine Erweiterung der String-Klasse schreiben und damit direkt einen String als Fehler werfen:
extension String: LocalizedError {
public var errorDescription: String? { return self }
}
throw "Fehler eins"