Swift предлагает возможности обработки исключений, которые полезны в ситуациях, когда ошибки не контролируются программистом (отсутствующие файлы, сброшенные соединения и т. Д.). Хотя я мог бы использовать один и тот же механизм для сообщения ситуаций, вызванных ошибками программиста (индекс за пределами границ, ошибки диапазона и т. Д.). Мне интересно, является ли это предполагаемым способом использования исключений.Условия работы, вызванные ошибками программиста в Swift
В коде Objective-C общий способ справиться с этими ситуациями был через утверждения. С другой стороны, использование исключений было несколько обескуражено в Objective-C, поэтому здесь не может быть замены «один-к-одному».
Аналогично, на Java есть проверенные и непроверенные исключения, с намерением использовать непроверенные для ошибок программиста.
Мое понимание заключается в том, что среди исключений в Свифте нет проверочных/непроверенных различий. Я хотел бы узнать, является ли использование исключений или утверждений правильным способом сообщить ошибки программиста в Swift, или если я должен использовать какой-то другой механизм?
Спасибо! Я думаю, что короткий ответ - «использовать предварительные условия». – dasblinkenlight
Всё зависит от меня. Если вы пытаетесь определить и удалить ошибки программиста во время процесса сборки, используйте 'assert', который поможет вам определить, когда условия не выполняются в отладочных сборках. Если, например, вы пишете фреймворк и хотите защитить от неустранимых нарушений какого-либо условия в сборках релизов, используйте «precondition». –