Was ist der Unterschied zwischen Swift 2.0 Do-Try-Catch und regulären Java / C # / C ++ - Ausnahmen?
Es scheint, dass Swift 2.0 sich von den traditionellen Konventionen für ObjC (NSError returning) und Swift 1.X (Success / Failure optionals) für die Behandlung von Laufzeitfehlern zu etwas geändert hat, das der Ausnahmebehandlung in Sprachen wie Java / C # / C ++ / sehr ähnlich sieht. etc
Apple hat traditionellbetonte Verwendung vonNSError
anstatt @ zu werfNSException for runtime errors
(vs Programmiererfehler), alsNSException
Das Abwickeln des Stapels kann zu Speicherverlusten bei den Standardeinstellungen des ObjC-Compilers führen.
Jetzt haben sie sich jedoch etwas ausgedacht, das den traditionellen Ausnahmen sehr, sehr ähnlich sieht. Meine Frage ist
Gibt es echte Unterschiede zwischen der Swift 2.0-Fehlerbehandlung und der herkömmlichen Ausnahmebehandlung neben Nomenklatu (Fehler gegen Ausnahme) undSynta (do-catch, anstelle von try-catch, try wird vor dem Methodenaufruf verwendet, usw.)