Содержание текста ошибки

Автор Тема: Содержание текста ошибки  (Прочитано 4174 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн AtomohodАвтор темы

  • ADN OPEN
  • ****
  • Сообщений: 453
  • Карма: 1
Содержание текста ошибки
« : 12-06-2018, 00:03:08 »
Здравствуйте всем, опять я.

Прошу рассказать алгоритм или поделиться ссылкой. Суть вопроса такова- как вы разгадываете по сообщению об ошибке что конкретно поломалось и в каком месте кода? Я могу определить место вылета только в отладчике, а хочу научиться понимать информацию из сообщения.


Отмечено как Решение Atomohod 12-06-2018, 01:44:15

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Содержание текста ошибки
« Ответ #1 : 12-06-2018, 00:11:04 »
Суть вопроса такова- как вы разгадываете по сообщению об ошибке что конкретно поломалось и в каком месте кода?
По этой ошибке ничего уже не определишь, так как эта ошибка уже следствие и AutoCAD уже не в состоянии восстановится.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн AtomohodАвтор темы

  • ADN OPEN
  • ****
  • Сообщений: 453
  • Карма: 1
Re: Содержание текста ошибки
« Ответ #2 : 12-06-2018, 00:20:12 »
То есть это сообщение совсем неинформативно? А для чего Autocad мне его показывает? Как Вы определяете ценное ли это сообщение или нет?

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Re: Содержание текста ошибки
« Ответ #3 : 12-06-2018, 00:21:00 »
Для начала - оборачивай опасные места в try{} catch{} - некоторые из таких "фаталов" отлавливается.
В остальных случаях - или наугад или спрашивать на форуме

Оффлайн AtomohodАвтор темы

  • ADN OPEN
  • ****
  • Сообщений: 453
  • Карма: 1
Re: Содержание текста ошибки
« Ответ #4 : 12-06-2018, 00:24:55 »
опасные места
Я новичок, у меня не понятно в каком месте кода что-нибудь отвалится. Можете указать типовые опасные места?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Содержание текста ошибки
« Ответ #5 : 12-06-2018, 00:25:06 »
А для чего Autocad мне его показывает?
Это не для тебя. Эта информация для команды инженеров AutoCAD. Но она была бы полезна если бы это было естественное "падение" AutoCAD без твоей программы. Здесь же, как я понимаю, всё связано с твоей программой (о чем ты наверняка сам догадываешься - иначе вопрос бы задавал не в этом разделе) и отправлять отчет в Autodesk не только не нужно, но и вредно...
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Содержание текста ошибки
« Ответ #6 : 12-06-2018, 00:28:20 »
Я новичок, у меня не понятно в каком месте кода что-нибудь отвалится. Можете указать типовые опасные места?
Для новичка все места "типовые опасные". Новички умудряются развалить AutoCAD такими экзотическими способами, что опытные программисты не в состоянии догадаться, что так можно вообще было делать. Один из примеров - попытка передачи аргументов в метод команды, который ты недавно "практиковал".  Поди догадайся, что в этот раз ты придумал... :-)
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Содержание текста ошибки
« Ответ #7 : 12-06-2018, 00:30:54 »
Для начала - оборачивай опасные места в try{} catch{} - некоторые из таких "фаталов" отлавливается.
А вот это делать не советую. Пусть лучше будет exception, по которому можно идентифицировать ошибку. Fatal Error всё-равно при помощи try/catch ты не перехватишь, зато точно потеряешь возможность найти когда возникла ошибка.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Re: Содержание текста ошибки
« Ответ #8 : 12-06-2018, 00:42:41 »
Для начала - оборачивай опасные места в try{} catch{} - некоторые из таких "фаталов" отлавливается.
А вот это делать не советую. Пусть лучше будет exception, по которому можно идентифицировать ошибку. Fatal Error всё-равно при помощи try/catch ты не перехватишь, зато точно потеряешь возможность найти когда возникла ошибка.
Так я и имел ввиду конструкцию
Код - C# [Выбрать]
  1. try
  2. {
  3.      // danger code
  4. }
  5. catch(Exception exception)
  6. {
  7.     // show exception
  8. }
"Проглатывать" ошибки я тоже не советую, если только это не предусмотрено программистом.
А по поводу "не перехвата" фаталов - могу поспорить. Часто встречал такие места, когда без try/catch был фатал, а с try/catch - конкретная ошибка.
Кстати, замечал, что при дебаге некоторые фаталы "ловятся" как ошибки, хотя в рантайме - просто фатал

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Содержание текста ошибки
« Ответ #9 : 12-06-2018, 00:55:42 »
А по поводу "не перехвата" фаталов - могу поспорить.
Не надо спорить. Если это Fatal Error, как на картинке из первого сообщения, то никакой try/catch его не словит.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Re: Содержание текста ошибки
« Ответ #10 : 13-06-2018, 10:46:48 »
Суть вопроса такова- как вы разгадываете по сообщению об ошибке что конкретно поломалось и в каком месте кода?
Естественно, что надо запускать отладку из Visual Studio и начинать ловить ошибку. Иногда достаточно запустить режим отладки и вместо такого сообщения получаем остановку выполнения в том месте, где произошла ошибка и студия даже подсказывает, в чём именно ошибка. Но это не всегда срабатывает.
Далее, смотрю в окошко "Output" ("Вывод" в русской Visual Studio). Там иногда пишется, в каком месте произошла ошибка. Но часто там ещё куча сторонних выводов самого AutoCAD, поэтому, это редко помогает.
Самый простой случай - когда ошибка вываливается при выполнении кода, который запускается по команде. Ставим точки остановки в нескольких местах команды и запускаем её. Дошли до точки остановки - F5, и так до тех пор, пока не получим фатал. Но мы уже будем знать, после какой точки остановки происходит ошибка. Потом убираем все точки остановки до той, в которой вывалился фатал и начинаем отладку по шагам. То есть, остановились в точке остановки и по F10 или F11 выполняем каждую отдельную операцию. И так находим место, где происходит сбой. Ну а дальше - смотрим внимательно, что же там не так, анализируем входные параметры и т.п. Со временем приходит опыт: как, что и где надо смотреть. Но, в целом, операция по поиску примерно такая.
Гораздо веселее, если запуск кода выполняется по событию - уже сложнее понять, какой кусок кода в какой момент запускается. Иногда приходится практически на все события ставить точки остановки на вход и выход и контролировать их корректное срабатывание. А далее, опять же, отладка по шагам, как и для командного метода.
Один из примеров - попытка передачи аргументов в метод команды, который ты недавно "практиковал".  Поди догадайся, что в этот раз ты придумал... :-)
А вот как такие "приколы" отлавливать я сходу даже не могу придумать.

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Re: Содержание текста ошибки
« Ответ #11 : 13-06-2018, 10:54:31 »
и отправлять отчет в Autodesk не только не нужно, но и вредно...
Ну не знаю... Я бы советовал отправлять. Возможно, со временем, им надоест получать такие сообщения и они сделают корректную обработку ошибок. Чтобы они не рушили работу AutoCAD, а выводили бы какое-то диагностическое окно вместо фатала. Это прямо моя розовая мечта, с тех самых пор, как я перешёл с Auto(Visual)LISP на C# :)