Возникла похожая проблема и вместо этого использовалась следующая строка (преобразованная для вашего кода). Извините, я не помню, где я его нашел.
В вашем коде замените это:
jQuery("#content").append(el).masonry( 'appended', el, true );
этим:
jQuery("#content").append(el).masonry( 'reload' );
В VS.NET вы можете указать, хотите ли вы, чтобы отладчик прерывал работу при возникновении исключения (а не только тогда, когда оно не обработано).
Посмотрите на Debug | Исключения ... пункт меню (Ctrl-Alt-E на моих горячих клавишах). Выберите интересующее вас исключение, затем отметьте поле «выброшенное» для этого исключения.
Вы можете отметить это поле на нескольких уровнях (все исключения CLR, все исключения CLR в данном пространстве имен или очень конкретные исключения)
Нет никакого хорошего способа заставить его игнорировать попытку перехвата, кроме того, что вы сделали. Но вы можете сделать код немного чище и получить тот же эффект. По сути, вы пытаетесь предотвратить выполнение действия в блоке catch. Лучше сделать это с помощью метода условной компиляции.
Try
...
Catch ex As Exception
DebugLog(ex)
Throw
End Try
<Condition("DEBUG)> _
Public Sub DebugLog(ByVal ex As Exception)
Messagebox.Show("errors suck")
End Sub
В разделе catch вашего Try..Catch вы должны записать сообщение об исключении, stacktrace и все остальное, что вам может понадобиться, в файл журнала - кроме того, вы также можете записать эти данные в журнал событий Windows.
В худшем случае вы можете просто поместить точки останова в раздел Catch ваших блоков Try..Catch, поскольку обычно вы не должны попадать в них, это должно ' После настройки не будет ничего особенного.