![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
maxvanceffer |
![]()
Сообщение
#1
|
![]() Студент ![]() Группа: Участник Сообщений: 72 Регистрация: 30.5.2009 Из: Moldova Пользователь №: 790 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Сдрасте всем. Вопрос на верно не столько к Qt сколько к самому С++. Вопрос в следующем, в Qt не работает обработка try, catch ... а вот как обезопасить себя если к примеру функция ничего не возвращает, к примеру :
|
|
|
wiz29 |
![]()
Сообщение
#2
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
maint |
![]()
Сообщение
#3
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 235 Регистрация: 3.8.2009 Из: Иркутск Пользователь №: 982 Спасибо сказали: 28 раз(а) Репутация: ![]() ![]() ![]() |
с чего это перестал работать ? Во вторых вообще компиляцию не должен ьыл пройти. number без return
|
|
|
zloiia |
![]()
Сообщение
#4
|
![]() Студент ![]() Группа: Участник Сообщений: 25 Регистрация: 5.5.2011 Пользователь №: 2655 Спасибо сказали: 5 раз(а) Репутация: ![]() ![]() ![]() |
Во вторых вообще компиляцию не должен ьыл пройти. number без return Ну вообще то это не ошибка. Это предупреждение. Если не сказать компилятору обрабатывать предупреждения как ошибки , то все шикарно соберется, только небольшой матюг в логах будет типа Цитата ||=== cpptest, Debug ===| D:\Projects\TESTS\cpptest\main.cpp||In function 'int number()':| D:\Projects\TESTS\cpptest\main.cpp|7|warning: no return statement in function returning non-void| И такой случай не вызывает исключения. Тут, мне кажется, только ужесточением требований к компилятору можно решить проблему. |
|
|
Алексей1153 |
![]()
Сообщение
#5
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
отсутствие return не всегда остановит компиляцию, как уже сказано выше. К примеру, наличие хотя бы одного условного оператора с оператором return внутри, позволит скомпилировать код, но будет выдано предупреждение. И если реально выполнение дойдёт до "висячего" места, то будет возврат произведён неинициализированного параметра (на самом деле возвращаемый параметр уже заранее лежит в стеке, но если с ним явно не работали, там будет мусор)
|
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 18.2.2025, 11:12 |