Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
Пробующий
 Аватар для galileopro
185 / 98 / 10
Регистрация: 28.04.2009
Сообщений: 1,101

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

09.04.2010, 21:25. Показов 2503. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно вывести информацию о всех используемых приложением кадрах механизма структурированной обработки исключений.
Интересует что такое "используемых приложением кадрах" и какую конкретно "информацию" здесь требуется выводить? Я понимаю, что при возникновении исключения в стеке будет некая ин-я о нем, которую потом система запишет в dump - файл, но если у меня программа складывает 2 числа, то где я там найду исключение? Это самому сгенерировать исключение?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.04.2010, 21:25
Ответы с готовыми решениями:

Обработка исключений с пмощью структурированной обработки исключений
Есть функция, которая определенным образом работает с файлами,но при работе с файлами "не подходящего" типа вызывается...

Обработка исключений
Нужно описать класс исключения и программу, способную генерировать и обрабатывать исключение (должна содержать блоки try, catch, throw)....

обработка исключений
Есть вот такой код: #include <iostream> #include <fstream> using namespace std; int _tmain(int argc, _TCHAR* argv) { ...

5
 Аватар для elfon
11 / 11 / 1
Регистрация: 09.11.2009
Сообщений: 32
10.04.2010, 00:16
Кадр в стеке есть(как минимум один) до исключения, даже если ты сам не обращался к __try. Создаётся он в системной функции с которой стартует твой процесс(первичный поток)/поток, тем же __try.
Писать тут можно много, вот ссылка:
http://wasm.ru/series.php?sid=7
расписано наиподробнейше.
Читай всё, так как вначале расписан механизм исключений операционной системы, а затем надстройка компилятора.
1
Пробующий
 Аватар для galileopro
185 / 98 / 10
Регистрация: 28.04.2009
Сообщений: 1,101
10.04.2010, 11:04  [ТС]
Ну все равно пока никакого исключения не возникло, там будет 1 кадр. Видимо моя программа должна сама опустим при нажатии на одну кнопку поделить на нуль и показать, что записала система при этом, потом прочитать из недоступно памяти и вывести ин-фу и еще так пару исключений сгенерировать.
0
 Аватар для elfon
11 / 11 / 1
Регистрация: 09.11.2009
Сообщений: 32
10.04.2010, 11:46
Если тебе нужен список зарегистрированных обработчиков, то генерировать исключение не надо. По адресу [fs:0] находится указатель на структуру _EXCEPTION_REGISTRATION(компилятор её расширяет, сохраняя базовую часть) в ней вся инфа по зарегистрированному обработчику и указатель на следующий. В второй части статьи Matt Pietrek'а есть программа ShowSEHFrames которая выводит информацию по зарегистрированным обработчикам.
1
Пробующий
 Аватар для galileopro
185 / 98 / 10
Регистрация: 28.04.2009
Сообщений: 1,101
10.04.2010, 13:11  [ТС]
Да. Видимо это то, что нужно. Я просто ездил на олимпиаду по кодингу, там было задание
"Разработать приложение, отображающее информацию о всех используемых в нем кадрах механизма структурированной обработки исключений."
Я его не сделал. Потом автор этого вопроса сказал, что нужно было воспользоваться библиотеками автора Matt Pietrek, они были на каждом компе в каждой аудитории.
Но меня сбило с толку влово "кадрам", а не "обработчикам". Видимо имеется ввиду слово "фреймы" для обработки исключений.
Если кому интересно вот с-но сайтик с заданиями http://www.kpi.kharkiv.edu/vtp... /2010.aspx
Я выступал за "Національний аерокосмічний у-т ім. Жуковського"

Добавлено через 35 секунд
Это было 5 задание 2 тура. Там можно скачать.

Добавлено через 14 минут
Вот только одного понять не могу, что означает "всех обработчиках" это зависит от того, сколько я использую в своей программе блоков try .. except, и finally. То есть их количество я выбираю сам и просто вывожу о них информацию? Я могу использовать один блок, могу несколько. Главное: вывести инфу о всех? Я правильно понимаю?
Просто таблица же будет разная для разных программ.

На рис. 10 показан исходный код программы ShowSEHFrames.EXE. Она использует _try/_except-блоки, чтобы создать список из нескольких Visual C++ SEH-фреймов. Впоследствии, она отображает информацию о каждом фрейме, а также структуры scopetable, которые Visual C++ создаёт для каждого SEH-фрейма. Программа не вызывает и не ожидает никаких исключений. Я включил все _try-блоки для того, чтобы Visual C++ создал множество кадров EXCEPTION_REGISTRATION, с множеством элементов scopetable в них.
А как он выбирал количество этих _try - блоков? Сколько конкретно их надо выбрать? Я так понял, что 3.
0
 Аватар для elfon
11 / 11 / 1
Регистрация: 09.11.2009
Сообщений: 32
10.04.2010, 16:24
Зависит от текущей вложенности блоков __try, а это уже зависит от самого программиста сколько он использовал __try. Там он для примера сделал три:
C++
1
2
3
__try{
__try{
__try{...
плюс один системный.
Когда происходит вход в блок __try в список фреймов добавдяется новый фрейм и соответственно обработчик. При выходе из __try фрейм удаляется(либо из __except в зависимости от того произошло ли исключение).
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.04.2010, 16:24
Помогаю со студенческими работами здесь

Обработка исключений
Здравствуйте, мне нужно проанализировать ведённый номер телефона методом обработка исключений. Подскажите пожалуйста, почему я не могу...

Обработка исключений
Подскажите пожалуйста как продолжить выполнение программы после срабатывания оператора catch. catch завершает программу, но ее нужно...

Обработка исключений
Здравствуйте! Есть вот такое выражение: Подскажите пожалуйста, как правильно реализовать обработку исключений. И у меня не...

Обработка исключений
я наверное не правильно использую try-catch, прога валится при вызове throw int CFtpUtilites::connectToFtp() { WSADATA ws; ...

Обработка исключений
Почему не перехватывает ошибку и не выводит Error? а прога сама прекращает работу. #include <iostream> using namespace std; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru