powered by simpleCommunicator - 2.0.47     © 2025 Programmizd 02
Форумы / C++ [игнор отключен] [закрыт для гостей] / Вывод ошибок не параметром метода какие есть варианты?
25 сообщений из 59, страница 1 из 3
Вывод ошибок не параметром метода какие есть варианты?
    #40041000
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
bool
Book::Save(inst::Abstract *top, const QString &full_path, QString *err)
{
	QSaveFile out(full_path);
	out.open(QIODevice::WriteOnly | QIODevice::Truncate);
	
	QXmlStreamWriter xml(&out);
	WriteStartDocument(xml);
	top->Write(xml);
	xml.writeEndDocument();
	const bool ok = out.commit();
	
	if (!ok && err != nullptr)
		*err = QString("Failed to save as ") + full_path;
	
	return ok;
}


https://github.com/f35f22fan/Ods2/blob/master/ods/Book.cpp
Вывод ошибок не параметром метода какие есть варианты?
Я понимаю что try в плюсах не приветствуется. А так был бы вариант
...
Рейтинг: 0 / 0
Вывод ошибок не параметром метода какие есть варианты?
    #40041005
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC SharpЯ понимаю что try в плюсах не приветствуется.

Кем не приветствуется? Не знаю как у Qt, а выкинуть std::runtime_error в данном случае
вполне нормальная идея.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вывод ошибок не параметром метода какие есть варианты?
    #40041007
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp

Вывод ошибок не параметром метода какие есть варианты?

Русский язык. 9 класс. Учебник

PetroNotC Sharp
Я понимаю что try в плюсах не приветствуется.

LOL. Язык программирования С++. Бьерн Страуструп

PetroNotC Sharp
А так был бы вариант

Тут я привёл целых два и не варианта, а два обязательных направления.

PS: Я удивлён, что тебя поняли, потому что без коммента от Сибирякова я вообще не уразумел о чём ты пишешь.
...
Рейтинг: 0 / 0
Вывод ошибок не параметром метода какие есть варианты?
    #40041008
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Я понимаю что try в плюсах не приветствуется. А так был бы вариант
С чего это вдруг "не приветствуются"?

Qt может не кидать исключений - это да. И если следовать этой традиции (именно традиции "Qt без исключений"), то параметр QString *err это вполне нормально и кошерно.

А если собрать Qt с исключениями, то будешь себе try-catch писать вполне стандартно, традиционно и по учебнику. Там конечно свои потенциальные проблемы вылезут, которые легко решаются дисциплиной программиста, но... Поэтому чаще всего Qt и живет без исключений.

А варианты правильной работы и потенциальные проблемы читать тут: https://doc.qt.io/qt-5/exceptionsafety.html
...
Рейтинг: 0 / 0
Вывод ошибок не параметром метода какие есть варианты?
    #40041022
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlQt может не кидать исключений - это да.

Поскольку он может собираться как динамическая библиотека - лучше ему этого не делать.
Иначе всё становится очень сложно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вывод ошибок не параметром метода какие есть варианты?
    #40041036
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav,
Не удивительно что не понял. Ты не работал с другими ЯП и вопросами по архитектуре.
Задай, уточняй, это форум.
...
Рейтинг: 0 / 0
Вывод ошибок не параметром метода какие есть варианты?
    #40041038
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Qt может работать с исключениями, но
- читал мнение самих разрабов что это не в приоритете.
- они не выходят сами на уровень Application. Без перехвата руками на самом верху.
- через либу *.so не переходят.
Если не перехватить то молча все проглотится.
В общем коряво.
Если в плюсах std::runtime_error многие применяют, то могу попробовать.
...
Рейтинг: 0 / 0
Вывод ошибок не параметром метода какие есть варианты?
    #40041039
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давайте сначала обзор вариантов.
На вскидку придумал 3:
1. Глобальная переменная error
2. LastError WinApi
3. Логгер
...
Рейтинг: 0 / 0
Вывод ошибок не параметром метода какие есть варианты?
    #40041040
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
На вскидку придумал 3:

Всё плохо. Возвращай { ret, err } как в гошечке.
...
Рейтинг: 0 / 0
Вывод ошибок не параметром метода какие есть варианты?
    #40041041
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,
>Кем не приветствуется?
==
авторВ с++ файналли не нужны, тут RAII есть.
21896029
...
Рейтинг: 0 / 0
Вывод ошибок не параметром метода какие есть варианты?
    #40041042
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster,
Гошечку не знаю.
В яве, дельфи, шарпе проблем нет.
...
Рейтинг: 0 / 0
Вывод ошибок не параметром метода какие есть варианты?
    #40041043
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПри использовании QtConcurrent и исключений из стандартной библиотеки, текст исключения теряется, остаётся только информация о типе исключений. Например результатом такого кода:
http://nomatter.ru/ru/qtconcurrent_and_exceptions
...
Рейтинг: 0 / 0
Вывод ошибок не параметром метода какие есть варианты?
    #40041059
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
В яве, дельфи, шарпе проблем нет.

Я уже вижу как минимум одну проблему - многопоток, который будет затирать твой глобальный error.
Логер - я хз, как ты будешь вылавливать из него исключения, а винапи - это вообще пошлятина, да и по сути тоже, что и глобальный error.
...
Рейтинг: 0 / 0
Вывод ошибок не параметром метода какие есть варианты?
    #40041064
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster,
Да.
Про потоки, то тут одинаковые подходы с другими ЯП. Перехват внутри потока.
Хотя, в шарпе с async await ловится снаружи
try
{
listTree = await obj.getAsync(....
...
Рейтинг: 0 / 0
Вывод ошибок не параметром метода какие есть варианты?
    #40041073
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster,
>Логер - я хз, как ты будешь вылавливать из него исключения,
== метод логгера это вместо
stringErrOut = sssssss
Писать
log.add(“xml атрибут аааааа не заполнен
..
То есть исключений не будет вообще.
...
Рейтинг: 0 / 0
Вывод ошибок не параметром метода какие есть варианты?
    #40041074
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster,
Цель двоякая при парсинге xml
- остановить если критическая ошибка типа версия не та
- пройти весь файл документ и вывалить юзверю ошибки шаблона документа Договор или Накладная или...
...
Рейтинг: 0 / 0
Вывод ошибок не параметром метода какие есть варианты?
    #40041080
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Dimitry Sibiryakov,
>Кем не приветствуется?
==
авторВ с++ файналли не нужны, тут RAII есть.

21896029 Отсутствие finally еще не означает, что "исключения не приветствуются".
...
Рейтинг: 0 / 0
Вывод ошибок не параметром метода какие есть варианты?
    #40041084
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AmKad,
Там по ссылке ниже код приведен. Что одно от другого зависит.
Формально слова разные. А логика кода вывернута шиворот навыворот. Разные концепции.
Мне жаль.
...
Рейтинг: 0 / 0
Вывод ошибок не параметром метода какие есть варианты?
    #40041098
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Топик будет не полным пока мы не обсудим costs на обработку exception.

В сравнении с возвратом boolean.
...
Рейтинг: 0 / 0
Вывод ошибок не параметром метода какие есть варианты?
    #40041103
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Угу. Сишникам только дай про скорость поговорить))))
...
Рейтинг: 0 / 0
Вывод ошибок не параметром метода какие есть варианты?
    #40041105
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Boolean нужен только при первом случае выше. А случаев два штуки.
...
Рейтинг: 0 / 0
Вывод ошибок не параметром метода какие есть варианты?
    #40041107
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если язык и библиотеки рекомендуют использовать исключения (Java/C#) для обработки
непредвиденных ошибок - то надо использовать. Более того. Во многих языках с управляемой
кучей процесс обработки ошибки тестно завязан на корректное освободждение ресурсов.

Насчет С++ - сложно сказать является ли это общеупотребимой практикой. Это интересный вопрос.

И почему например при создании GoLang полностью отказались от механизма исключений. И на что заменили.
Тоже вопрос достойный обсуждения.
...
Рейтинг: 0 / 0
Вывод ошибок не параметром метода какие есть варианты?
    #40041109
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Насчет С++ - сложно сказать является ли это общеупотребимой практикой. Это интересный вопрос.

В С++ как обычно бардак, раздрай и подводные камни. Примерно как со строками.

Программируя на Qt, конечно, можно использовать исключения. И в случае DLL тоже, но нужно уметь обходить подводные рифы.
...
Рейтинг: 0 / 0
Вывод ошибок не параметром метода какие есть варианты?
    #40041149
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC SharpВ яве, дельфи, шарпе проблем нет.

Всё перечисленное - языки программирования. Qt - фреймворк (библиотека). Почувствуй разницу.


PS: Повторяю медленно: в библиотеке Qt исключения не приветствуются по вполне определённой причине - возможности динамической сборки. В языке программирования С++ с исключениями проблем нет.
...
Рейтинг: 0 / 0
Вывод ошибок не параметром метода какие есть варианты?
    #40041159
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,
Теорию я понял. Теперь по коду и практике. Выше ссылка как пишут с try в других ЯП.
...
Рейтинг: 0 / 0
25 сообщений из 59, страница 1 из 3
Форумы / C++ [игнор отключен] [закрыт для гостей] / Вывод ошибок не параметром метода какие есть варианты?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]