2016-01-31 3 views
0

У меня в программе есть несколько статей do-try-catch, но я использую ту же самую функцию catch, как я могу ее исключить?факторинговая уловка catch в try catch

Например

func tryCatch1 { 
    do{ 
    try something.save 
    }catch let error as UserError{ 
    print(error.description) 
    } 
} 


// Another try catch 

func tryCatch2 { 

     do{ 
     try somethingAgain.save 
     }catch let error as UserError{ 
     print(error.description) 
     } 
} 

Можно ли создать что-то вроде «универсальный улов»

+0

Зачем улавливать функции низкого уровня? Просто бросьте исключение. Как правило, лучше всего поймать исключение на самом высоком уровне – Paulw11

+0

@ Paulw11 вы можете объяснить дальше? –

+0

Использовать try/catch таким образом довольно бессмысленно, не так ли? Если вы не сделаете что-то полезное, вы можете использовать try! и, по крайней мере, пользователь замечает, что что-то не так. – gnasher729

ответ

1

Если вы нашли себя снова и снова вводить тот же шаблонный код, вы можете создать Xcode " Code Snippet ", который вы вызываете с помощью простой последовательности символов.

В Xcode откройте правую панель «Утилиты» (для этого вы можете использовать последнюю из трех маленьких квадратных значков в правом верхнем углу).

В нижней части находится раздел, где вы обычно выбираете объекты пользовательского интерфейса: щелкните по значку { } с именем «Показать библиотеку фрагмента кода». теперь вы можете увидеть список готовых фрагментов.

Чтобы сделать ваш, выберите код в Xcode с помощью мыши, в комплекте с отступом:

do { 

} catch let error as UserError { 
    print(error.description) 
} 

Затем перетащить выбранный код в разделе сниппетов (вы можете удерживать ALT (опция) при перетаскивании для визуальной справки).

Раздел выделения фрагментов: отбросьте выделение, создайте новый снипп в нижней части.

Нажмите на нее, нажмите на редактирование: сделать свой собственный заголовок, описание, ярлык и т.д.

Теперь каждый раз, когда в вашем коде, в выбранной области видимости, при вводе ярлык, он заменяется сниппета ,

Если у моего фрагмента есть ярлык «dtc» (просто пример, выберите что-то, что не будет мешать вашим ключевым словам или словам Swift), мне просто нужно набрать «dtc», а «dtc» заменяется на целое Блок Do-Try-Catch из фрагментов.

enter image description here

+0

Спасибо, это очень удобный трюк! но почему нужно «Alt» удерживать, мои работы, даже если я не держу alt, просто нажмите и перетащите. –

+0

Добро пожаловать. Вы правы, что ALT не является обязательным, я просто хотел бы обеспечить его соблюдение, потому что он меняет указатель мыши на селектор на крест - я нахожу его полезным для перетаскивания текста. – Moritz