Когда использовать в рабочем коде Swift?
Короткий и простой ответ на этот вопрос — никогда. Однако на самом деле есть несколько случаев использования, когда try! может считаться действительным даже в производственном коде.
Когда вы используете try! в вашем коде Swift вы гарантируете, что если вызов, с которым он используется, вызовет бросок, ваше приложение немедленно прекратит работу. В подавляющем большинстве случаев это последнее, что должно произойти. Ваши пользователи почти никогда не будут довольны тем, что ваше приложение рухнуло во время его использования, даже если они не столкнулись с повреждением или полной потерей данных.
Единственный раз, когда считается приемлемым использовать try! в производственном коде — это когда вы используете вызов, который определенно никогда не должен завершаться ошибкой. Пример, используемый в документации Swift, — это когда вы загружаете ресурсы, которые поставляются с вашим приложением, такие как изображения. Идея состоит в том, что если вы используете try!, вы решили, что если ваш код рухнет в этот момент, это будет наименьшая из проблем вашего пользователя. По крайней мере, с точки зрения использования вашего приложения. На мой взгляд, даже сомнительно, следует ли вам сбоить ваше приложение только потому, что оно не может загрузить ресурс изображения. Впрочем, каждому свое.
К счастью, Swift включает в себя 3 других варианта обработки ошибок. Все 3 из них позволяют вам обрабатывать возникающие ошибки гораздо более изящно, что, по крайней мере, уменьшит количество трения, с которым сталкиваются ваши пользователи при использовании вашего приложения.
Дополнительную информацию об обработке ошибок Swift можно найти на сайте swift.org.