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!"];
}
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.
Je crois que, à ce jour, Swift ne le supporte pas. Il sera très probablement ajouté sur les futures bêtas.