it-swarm.com.de

try-Catch-Ausnahmen in Swift

Kann man in Swift Ausnahmen fangen? Gegeben der folgende Code:

NSException.raise(NSRangeException,
    format: "Now you've gone too far!",
    arguments: CVaListPointer(fromUnsafePointer: UnsafePointer()))

Kann verhindert werden, dass die Ausnahme das gesamte Programm zum Absturz bringt? Was ist das schnelle Äquivalent des Folgenden in Objective-C:

@try {
    [NSException raise:NSRangeException format:@"Now you've gone too far!"];
}
27
modocache

Es gibt keine Ausnahmebehandlung, und diese Diskussion im Entwicklerforum diskutiert, warum es so sein kann :

denken Sie jedoch daran, dass Cocoa und Cocoa Touch traditionell nicht die Absicht haben für Sie Ausnahmen zu fangen; Sie beabsichtigen, dass Sie sie nicht dazu veranlassen, in erster Linie geworfen werden. Gewöhnliche Fehler sollten mit .__ behandelt werden. optionale Typen und Inout-NSError-Parameter; Sie sollten sich an alle wenden Eine Situation, die dazu führt, dass eine Assertion fehlschlägt (was der einzige Ausnahmewurfmechanismus in Swift zu sein scheint), indem besserer Code geschrieben wird.

11
manojlds

Ich glaube, dass Swift dies heute nicht unterstützt. Es wird höchstwahrscheinlich bei zukünftigen Betas hinzugefügt.

0
Oscar Swanros