web-dev-qa-db-fra.com

exceptions try-catch dans Swift

Est-il possible d'attraper des exceptions dans Swift? Étant donné le code suivant:

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

Est-il possible d'empêcher l'exception de planter tout le programme? Autrement dit, quel est l'équivalent Swift de ce qui suit dans Objective-C:

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

Il n’ya pas de gestion des exceptions, et cette discussion sur le forum des développeurs explique pourquoi il peut en être ainsi :

mais gardez à l’esprit que Cocoa et Cocoa Touch n’ont traditionnellement pas l’intention pour que vous attrapiez des exceptions; ils ont pour but de ne pas leur causer être jeté en premier lieu. Les erreurs ordinaires doivent être traitées avec types optionnels et paramètres NSError inout; vous devriez vous adresser à tout situation qui entraîne l’échec d’une assertion (qui semble être le seul mécanisme de lancement d’exceptions dans Swift) en écrivant un meilleur code.

11
manojlds

Je crois que, à ce jour, Swift ne le supporte pas. Il sera très probablement ajouté sur les futures bêtas.

0
Oscar Swanros