Исключение try-catch в Swift
Можно ли перехватывать исключения в Swift? Учитывая следующий код:
NSException.raise(NSRangeException,
format: "Now you've gone too far!",
arguments: CVaListPointer(fromUnsafePointer: UnsafePointer()))
Можно ли предотвратить исключение исключения из всей программы? То есть, что эквивалентно Swift из следующего в Objective-C:
@try {
[NSException raise:NSRangeException format:@"Now you've gone too far!"];
}
Ответы
Ответ 1
В нем нет обработки исключений, и в этом обсуждении на форуме разработчиков обсуждается, почему это может быть так:
но имейте в виду, что Cocoa и Cocoa Touch традиционно не намереваются чтобы вы могли поймать исключения; они хотят, чтобы вы не быть брошенными в первую очередь. Обычные ошибки следует обрабатывать с помощью необязательные типы и inout параметры NSError; вы должны обратиться к любым ситуация, которая приводит к отказу утверждения (что кажется единственным механизм исключения в Swift), написав лучший код.
Ответ 2
Я считаю, что на сегодняшний день Свифт не поддерживает это. Скорее всего, это будет добавлено к будущим бетам.