Обработка ошибок.NET :try/catch VS event VS return -значение/статус -поля

Сейчас я нахожусь на очень важном перекрестке в разработке мобильных приложений для разных -платформ, и мне действительно не помешал бы некоторый опыт (, например, woah ).

Чтобы дать некоторый контекст (, который может помочь в ответе, я надеюсь ), я разрабатываю мобильное приложение в.NET на основе удобной -франтовской среды MonoCross,с использованием VS2010U (, а не MonoDevelop, то есть для IOS ). Первая целевая платформа — Android, затем — «порты» на IOS и Windows Phone (, если я все сделаю правильно ).

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

Мне сказали, что блоки try -catch могут снижать производительность (, что в данном случае имеет большое значение ),
это правда ? Должен ли я использовать их экономно или просто шлепать их везде, где может быть выбрано исключение? (Я хотел бы использовать их во всех моих вызовах API SQLite, так как я не знаю, что, черт возьми они делают половину времени ).

Использование обратных вызовов события -плохо для обработки ошибок? Мне посоветовали использовать их всякий раз, когда возможно, в отличие от try -catch, из соображений производительности, но я не хочу ломать какой-либо дизайн принципы и парадигмы, и в конечном итоге везде появляется неаккуратный -гаух -неряшливый код.

Третий вариант, с наименьшими накладными расходами, но бесконечно раздражающий в обращении. with, являются полями состояния -и возвращаемыми значениями.

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

Спасибо, что нашли время для этого!

7
задан oleksii 3 July 2012 в 19:40
поделиться