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.)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage