Отладка Visual Studio - игнорирует исключение в одном месте при повреждении в нем в другом месте?

Этот URL даст Вам количество непрочитанных сообщений на канал. Можно тогда выполнить итерации по подаче и подвести итог количеств.

http://www.google.com/reader/api/0/unread-count?all=true

Вот является минималистским примером в Python... анализирующем xml/json, и суммирующий количества оставлен как осуществление для читателя:

import urllib
import urllib2

username = 'username@gmail.com'
password = '******'

# Authenticate to obtain SID
auth_url = 'https://www.google.com/accounts/ClientLogin'
auth_req_data = urllib.urlencode({'Email': username,
                                  'Passwd': password,
                                  'service': 'reader'})
auth_req = urllib2.Request(auth_url, data=auth_req_data)
auth_resp = urllib2.urlopen(auth_req)
auth_resp_content = auth_resp.read()
auth_resp_dict = dict(x.split('=') for x in auth_resp_content.split('\n') if x)
auth_token = auth_resp_dict["Auth"]

# Create a cookie in the header using the SID 
header = {}
header['Authorization'] = 'GoogleLogin auth=%s' % auth_token

reader_base_url = 'http://www.google.com/reader/api/0/unread-count?%s'
reader_req_data = urllib.urlencode({'all': 'true',
                                    'output': 'xml'})
reader_url = reader_base_url % (reader_req_data)
reader_req = urllib2.Request(reader_url, None, header)
reader_resp = urllib2.urlopen(reader_req)
reader_resp_content = reader_resp.read()

print reader_resp_content

И некоторые дополнительные ссылки на тему:

41
задан Kastaka 29 October 2009 в 16:03
поделиться

5 ответов

Вы может быть в состоянии сделать это, но это зависит от того, как код, который вы хотите отладить, расположен относительно кода другого разработчика, и можете ли вы модифицировать (но не фиксировать свои изменения) его код.

Первый вам нужно хотя бы временно перейти в меню Инструменты -> Параметры -> Отладка в Visual Studio и установить флажок «Просто "Мой код". Я предполагаю, что это доступно даже в экспресс-выпусках, но может и не быть, и если это недоступно для вас, я боюсь, что остальное, что я скажу, вероятно, не поможет.

В любом случае, как только вы это получите отмечен, вы больше не будете видеть уведомления о прерывании при запуске для кода, который не является «вашим». Это означает, что код взят из сборки, отсутствующей в вашем .sln, или код, помеченный атрибутом [DebuggerNonUserCode] из System.Diagnostics . Что я обычно делаю тогда, так это временно украшаю вызывающие нарушение методы [DebuggerNonUserCode] , пока я не закончу отладку того, что мне нужно отладить, а затем возвращаю эти изменения, прежде чем возвращаться в управление источником.

Это не так. так элегантно, как я бы хотел (мне бы хотелось, чтобы в помощнике по исключениям был установлен флажок «никогда не прерывать броски с этого сайта снова»), но это лучше, чем ничего.

Я считаю, что могут быть другие настройки отладчика, которые могут взаимодействовать с тем, как работает "Just My Code", так что если это не так

39
ответ дан 27 November 2019 в 00:52
поделиться

Если вы говорите об исключительной функции «Break On Throw», то ее нет. Это строго функция, основанная только на типах, и у нее нет способа контролировать, в каком разделе кода возникает исключение.

Лучше всего просто разместить точки останова на всех строках, которые вызывают или временно приостанавливают выдачу исключения из одного места, которое вам небезразлично.

4
ответ дан 27 November 2019 в 00:52
поделиться

Если вы знаете, как вы это называете, я бы установил точку останова в вашем коде и затем перешел оттуда в (F11). Вы также можете ударить программиста, пока он не исправит свой код, что поможет вам почувствовать себя лучше (если вы не пацифист), и, возможно, у них не будет так много исключений ArgumentExceptions в их коде (что, вероятно, заставит вас почувствовать себя лучше. даже если вы пацифист).

2
ответ дан 27 November 2019 в 00:52
поделиться

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

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

Скажите другому разработчику исправить его код.

Изменить: В .NET 4, вы можете присоединить обработчик к событию AppDomain.FirstChanceException , отфильтровать исключения, не относящиеся к ArgumentException, и отфильтровать плохие исключения на основе стека вызовов.

1
ответ дан 27 November 2019 в 00:52
поделиться

Ссылки в комментариях отличные.

Я думаю, что условные точки останова - это то, что вы здесь ищете. Вы можете сделать это, щелкнув правой кнопкой мыши точку останова и выбрав пункт меню «Условие ...».

0
ответ дан 27 November 2019 в 00:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: