Подтвердить что ты не робот

Исключение 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!"];
}
4b9b3361

Ответ 1

В нем нет обработки исключений, и в этом обсуждении на форуме разработчиков обсуждается, почему это может быть так:

но имейте в виду, что Cocoa и Cocoa Touch традиционно не намереваются чтобы вы могли поймать исключения; они хотят, чтобы вы не быть брошенными в первую очередь. Обычные ошибки следует обрабатывать с помощью необязательные типы и inout параметры NSError; вы должны обратиться к любым ситуация, которая приводит к отказу утверждения (что кажется единственным механизм исключения в Swift), написав лучший код.

Ответ 2

Я считаю, что на сегодняшний день Свифт не поддерживает это. Скорее всего, это будет добавлено к будущим бетам.