Точка останова исключения не работает в Xcode11.3 - PullRequest
3 голосов
/ 06 января 2020

Я использую for-l oop для итерации массива. Когда индекс выходит за пределы, точка останова исключения не останавливается в точке ошибки.

Мой код

class ViewController: UIViewController
{
    let integers = [1, 2, 3]

    override func viewDidLoad()
    {
        super.viewDidLoad()
        iterate(givenArray: integers)
    }

    func iterate(givenArray: [Int])
    {
        for index in 0...givenArray.count
        {
            print(givenArray[index])
        }
    }
}

Я получаю следующую ошибку на консоли.

1 2 3 Неустранимая ошибка: индекс вне диапазона 2020-01-06 14: 29: 09.726533 + 0530 Playground [93060: 2221772] Неустранимая ошибка: индекс вне диапазона

Я понимаю ошибку. Мой вопрос заключается в том, что, хотя я добавил точку останова исключения, почему она не работает?

Ответы [ 2 ]

0 голосов
/ 28 января 2020

Помните, что ошибки, возникающие в Swift, являются не исключениями, а просто ошибками (NSError, независимо от того, основан ли на ErrorType, ...).

Не смешивайте точку останова symboli c с точка останова исключения. Разные животные. Имейте это в виду. Когда вы пытаетесь установить контрольную точку исключения в XCode, Swift отсутствует. Вероятно, основная причина в том, что заброшенные ошибки не являются исключением, и они не выяснили, куда еще добавить. Добавьте точку вручную !!

0 голосов
/ 28 января 2020

Это не разрыв с точкой останова Exception, потому что вызов fatalError() - это не то же самое, что генерация исключения - он более серьезный.

Вы можете считать это признаком того, что ваше приложение находится в заявите, что он не должен пытаться восстановиться, и это всегда приведет к закрытию вашего приложения.

Существуют творческие способы [1] прервать вызов fatalError, но я думаю, что вам лучше рассмотреть этот код ошибка, которая должна быть исправлена, и защитите себя от ошибки таким образом, не пытаясь обработать ошибку во время выполнения.

[1] - Сбой при любом возникновении "фатальной ошибки: неожиданно найден ноль, в то время как развертывание необязательного значения "

...