Как работать за исключениями непроверенными?

Я соглашаюсь о генерации электронных таблиц XML, вот пример о том, как сделать это для C# 3 (все просто ведут блог об этом в VB 9: P) http://www.aaron-powell.com/linq-to-xml-to-excel

5
задан greatwolf 15 September 2013 в 19:19
поделиться

4 ответа

Когда я впервые начал использовать C #, меня это тоже испугало. Потом я обнаружил, что на самом деле это не так уж и важно. Я очень редко нахожу, что могу перехватить исключение и что-то полезное с ним в любом случае ... почти все мои исключения в любом случае всплывают где-то в верхней части стека, где они обрабатываются путем прерывания запрос или что-то в этом роде.

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

В основном, я думаю, что у нас нет "

11
ответ дан 18 December 2019 в 05:31
поделиться

For C++ specifically, the overhead pretty much goes away if you design your classes well and use RAII.

Martin York has written a wonderful example of that in this answer.

The function can stll throw an exception, yes, but if it does, it won't need to do anything special to clean up. So you only need to actually catch the exception in one place -- the function that is able to handle it and recover from the error.

3
ответ дан 18 December 2019 в 05:31
поделиться

В дополнение к тому, что сказал Нил, вы должны отметить, что нет необходимости в try / finally (или в контексте C ++ try / catch / throw ), потому что деструкторы объекта вызываются , даже если генерируется исключение.

Легко получить безопасный в отношении исключений код с очень небольшим количеством операторов try .

4
ответ дан 18 December 2019 в 05:31
поделиться

Простой. Вы не делаете обработку исключений в «каждой функции, которая может вызывать» - в C ++ это может делать почти каждая функция. Вместо этого вы делаете это в определенных ключевых точках своего приложения, где вы можете произвести разумную диагностику для конкретного приложения и предпринять разумные корректирующие действия для конкретного приложения, хотя использование идиомы RAII означает (как указывает Авакар в своем ответе) что часто необходимо предпринять незначительные корректирующие действия.

16
ответ дан 18 December 2019 в 05:31
поделиться