|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
19.02.2015, 23:59 | #1 |
Форумчанин
Регистрация: 16.03.2013
Сообщений: 599
|
Как лучше всего собирать данные об исключениях в функции?
В данный момент есть функция полностью помещенная в try-catch, однако это позволяет узнать только, что в ней произошло исключение, а хотелось бы узнать об исключении все вплоть до параметров функции, вызвавшей исключение.
Что делать? Я знаю всего 2 решения проблемы: 1. ввести дополнительную строку exceptionInfo, которую заполнять перед каждым потенциально-опасным действием и выдавать ее при исключении. 2. наделать кучу try-catch. Оба этих подхода мне не нравятся из-за их громоздкости. Вот, кстати, нынешний код функции (лишь бы работало), который я собираюсь рефакторить (не надо в нем разбираться, ибо проблема с ним не очень связана): Код:
alextrof94$gmail.com
|
20.02.2015, 00:29 | #2 |
Форумчанин
Регистрация: 16.01.2015
Сообщений: 672
|
что-то не понятно в чем беда?
потенциально опасный код всегда известен, исключение есть, чего еще не хватает? |
20.02.2015, 00:48 | #3 |
Форумчанин
Регистрация: 16.03.2013
Сообщений: 599
|
Этого кода много. Например функция SubString, которая выдает исключение "Значение StartIndex не может быть меньше нуля. Имя параметра: startIndex", их у меня с десяток в одной функции, как узнать какая из них выдает исключение и при каких параметрах?
Паршу один сайтишко, и это самый легкий способ добыть инфу.
alextrof94$gmail.com
|
20.02.2015, 01:19 | #4 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Точно самый легкий? Что насчет HtmlAgilityPack? http://www.programmersforum.ru/showp...27&postcount=3
А про проблему я не понял, но в Exception вроде ж есть инфа о методе и даже номер строки, если не удалять pdb.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
20.02.2015, 01:32 | #5 |
Форумчанин
Регистрация: 16.03.2013
Сообщений: 599
|
Точно самый легкий. Основное облегчение в том, что как раз не надо использовать посторонние классы, которые так же будут выдавать эксепшены при отсутствии искомых элементов.
Ошибки вываливаются не у меня, а у друзей, в этом и проблема. Попробую HtmlAgilityPack, хоть и пробовал его использовать раньше.
alextrof94$gmail.com
|
20.02.2015, 01:38 | #6 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Ну можно не нарываться на эти экзепшны, а проверять самому найден ли элемент и кидать свое исключение с нужными данными и описанием.
А библиотеки для парсинга HTML удобнее такого парсинга хотя бы в плане надежности. Добавится в этот div еще один CSS класс для подсветки чего-нибудь и сломается парсинг Substring'ами. Ну и XPath запрос по-моему проще составлять, чем так, особенно на сложных сайтах, или когда лишние элементы попадаются и надо точнее выбирать.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 20.02.2015 в 01:41. |
20.02.2015, 07:04 | #7 |
Форумчанин
Регистрация: 16.03.2013
Сообщений: 599
|
Ну вот. переписал функции под HtmlAgilityPack. Стало проще, но теперь код выглядит громоздко...
И встал другой вопрос, как внедрить библиотеку в exe. UPD: вес приложения увеличился в 3 раза =/
alextrof94$gmail.com
Последний раз редактировалось alextrof94; 20.02.2015 в 07:39. |
20.02.2015, 09:01 | #8 |
Форумчанин
Регистрация: 16.01.2015
Сообщений: 672
|
юзайте регексы https://msdn.microsoft.com/en-us/lib...v=vs.100).aspx
|
20.02.2015, 10:31 | #9 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Не, регекспами тоже плохо HTML парсить, не сильно лучше первого варианта.
http://stackoverflow.com/questions/1...contained-tags В 3 раза это сколько? Стало 150 КБ вместо 50? Серьезная проблема, да. "Внедрить" можно ILMerge, но смысла мало. Чем вам так dll мешает? Вы ж не вирусы пишете. Отправляйте папку в zip архиве либо инсталлятор используйте.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 20.02.2015 в 10:37. |
20.02.2015, 10:37 | #10 |
Форумчанин
Регистрация: 16.01.2015
Сообщений: 672
|
html это текст, регекс для текста и создан, что не так?
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как лучше всего защитить dll от взлома? | Ecosasha | Свободное общение | 8 | 04.09.2012 22:02 |
Как лучше всего получать письма? | DEA7H | Общие вопросы Delphi | 4 | 06.06.2012 17:55 |
Как лучше всего реализовать игру пятнашки? | Sauber | C++ Builder | 2 | 18.11.2011 22:52 |
ASP.NET. Как лучше всего сохранить запрос? | Stilet | ASP.NET | 4 | 01.06.2010 13:11 |
Как лучше всего освобождать созданные в потоке объекты? | TwiX | Общие вопросы Delphi | 2 | 13.03.2010 21:27 |