siddharth629 Ответов: 2

наконец блок обработки исключений


можем ли мы использовать оператор return в блоке finally обработки исключений?.

[no name]

Работать над домашним заданием или сидеть на экзамене и пытаться получить ответы?

siddharth629

извиняюсь

Richard C Bishop

Вы уже пробовали?

JOHN 602

Уэс Адей, хороший ответ, ахах

Herman<T>.Instance

да вы можете но вы можете получить сообщение о том что не все кодовые пути возвращают значение

[no name]

Жаль, что я не могу получить 5!

Sergey Alexandrovich Kryukov

Это ответ типа "Да, вы можете, но вы не можете".

Это напоминает хорошо известную шутку (а на самом деле, даже не очень шутку) по поводу обсуждения шатких оснований человеческое право:

-- "Имею ли я право...?"
-- "Да, у тебя есть!"
-- "Так можно?..."
-- "Нет, нельзя".

:-)
--СА

[no name]

:-)

Sergey Alexandrovich Kryukov

На самом деле, пожалуйста, смотрите мой комментарий к комментарию Уэса ниже. Я подозреваю, что это сообщение об ошибке не так уж разумно...
--СА

[no name]

Не в VS 2008 Вы не можете, " Ошибка 5 Управления не может покинуть тело предложения finally"

Sergey Alexandrovich Kryukov

Это правило - просто защита от случая, когда некоторые важные (например, очистка) утверждения приходят после "возврата". Если склонны думать, что это чрезмерно, потому что "обнаруженный недостижимый код" выполнит эту работу, а возврат внутрь "наконец" может сделать код короче, если методы возвращают какое-то значение (не пустое).
--СА

[no name]

Да и на самом деле это ошибка компилятора, http://msdn.microsoft.com/en-us/library/0hbbzekw.aspx

Sergey Alexandrovich Kryukov

- Да, я знаю. Я просто сомневаюсь, что это разумно.
--СА

[no name]

Вам придется обсудить это с Хейлсберг :-)

Sergey Alexandrovich Kryukov

Да, это не единственное, на что я мог бы пожаловаться. Я вижу как минимум 2 крупных сбоя .NET, не считая проблем в архитектуре некоторых библиотек.
--СА

2 Ответов

Рейтинг:
2

Member 12836013

Мы не можем использовать оператор return в блоке finally.


[no name]

Неужели? Вы имеете в виду, что решение 1, опубликованное четыре года назад, говоря точно то же самое, было каким-то непонятным, и вы почувствовали необходимость сказать это снова? Эти никчемные интернет-точки, должно быть, очень много для вас значат.

Рейтинг:
1

Sangramsingh Pawar

нет, мы не можем использовать оператор return в блоке finally обработки исключений.