2013-12-20 2 views
0

Раньше я работал в .NET C#, и недавно я начал изучать программирование с объективом c и iOS. Несколько раз я читал, что цель-c является исключением недружелюбным, и я не должен их обрабатывать. Я знаю, что лучше не вызывать каких-либо исключений, но разве они не созданы для защиты нашего кода? Обработка исключений очень распространена в .NET, и я не могу понять, почему я не должен делать это в объективе-c.Почему объективные исключения c недружественны?

+0

В разделе «Каковы наилучшие методы для исключений/возврата NO/nil в Objective-c?» никто не объясняет, ПОЧЕМУ я не должен их использовать. И «Почему я не должен обертывать каждый блок в« try »-« catch », до сих пор не объясняет, почему обработка исключений в объекте-c менее рекомендуется, например, для .NET (так как это явно не для того, чтобы злоупотреблять им). – KlimczakM

+1

Это не имеет никакого отношения к ObjC, и все, что связано с Cocoa. Внутри, Cocoa не обертывает все в @ try/@ catch/@, наконец, поэтому, если Cocoa вызывает ваш код, он не подготовлен к тому, чтобы ваш код выдавал исключение, даже если вы позже его поймаете. –

ответ

3

Даже в .NET исключения не предназначены для потока программы. Тот факт, что некоторые программисты используют их как таковые, это всего лишь плохое программирование. Спектакль ужасен. Часто вы увидите программы, отображающие сообщения об ошибках из обработки исключений, которые не имеют смысла для конечного пользователя. Такой дизайн делает приложение не аварийным, но не предоставляет конечным пользователям много информации.

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

Причина, по которой вы не должны, состоит в том, что эти исключения происходят по причине. Вы не используете рамки должным образом. Вы ничего не реализовали. И т. Д.

Смежные вопросы