Суть вопроса такова- как вы разгадываете по сообщению об ошибке что конкретно поломалось и в каком месте кода?По этой ошибке ничего уже не определишь, так как эта ошибка уже следствие и AutoCAD уже не в состоянии восстановится.
опасные местаЯ новичок, у меня не понятно в каком месте кода что-нибудь отвалится. Можете указать типовые опасные места?
А для чего Autocad мне его показывает?Это не для тебя. Эта информация для команды инженеров AutoCAD. Но она была бы полезна если бы это было естественное "падение" AutoCAD без твоей программы. Здесь же, как я понимаю, всё связано с твоей программой (о чем ты наверняка сам догадываешься - иначе вопрос бы задавал не в этом разделе) и отправлять отчет в Autodesk не только не нужно, но и вредно...
Я новичок, у меня не понятно в каком месте кода что-нибудь отвалится. Можете указать типовые опасные места?Для новичка все места "типовые опасные". Новички умудряются развалить AutoCAD такими экзотическими способами, что опытные программисты не в состоянии догадаться, что так можно вообще было делать. Один из примеров - попытка передачи аргументов в метод команды, который ты недавно "практиковал". Поди догадайся, что в этот раз ты придумал... :-)
Для начала - оборачивай опасные места в try{} catch{} - некоторые из таких "фаталов" отлавливается.А вот это делать не советую. Пусть лучше будет exception, по которому можно идентифицировать ошибку. Fatal Error всё-равно при помощи try/catch ты не перехватишь, зато точно потеряешь возможность найти когда возникла ошибка.
Так я и имел ввиду конструкциюДля начала - оборачивай опасные места в try{} catch{} - некоторые из таких "фаталов" отлавливается.А вот это делать не советую. Пусть лучше будет exception, по которому можно идентифицировать ошибку. Fatal Error всё-равно при помощи try/catch ты не перехватишь, зато точно потеряешь возможность найти когда возникла ошибка.
А по поводу "не перехвата" фаталов - могу поспорить.Не надо спорить. Если это Fatal Error, как на картинке из первого сообщения, то никакой try/catch его не словит.
Суть вопроса такова- как вы разгадываете по сообщению об ошибке что конкретно поломалось и в каком месте кода?Естественно, что надо запускать отладку из Visual Studio и начинать ловить ошибку. Иногда достаточно запустить режим отладки и вместо такого сообщения получаем остановку выполнения в том месте, где произошла ошибка и студия даже подсказывает, в чём именно ошибка. Но это не всегда срабатывает.
Один из примеров - попытка передачи аргументов в метод команды, который ты недавно "практиковал". Поди догадайся, что в этот раз ты придумал... :-)А вот как такие "приколы" отлавливать я сходу даже не могу придумать.
и отправлять отчет в Autodesk не только не нужно, но и вредно...Ну не знаю... Я бы советовал отправлять. Возможно, со временем, им надоест получать такие сообщения и они сделают корректную обработку ошибок. Чтобы они не рушили работу AutoCAD, а выводили бы какое-то диагностическое окно вместо фатала. Это прямо моя розовая мечта, с тех самых пор, как я перешёл с Auto(Visual)LISP на C# :)