Можно ли заставить .NET CLR игнорировать определенные исключения? Например, бросок будет просто пропущен, и функция продолжится, как будто ничего не произошло?
Можно ли сделать это без изменения того, откуда выдается код? Программное обеспечение .NET 4.6.1 WinForms.
Причина заключается в обратном проектировании некоторого вредоносного ПО, имеющего тысячи подпрограмм с контрольной суммой, мне нужно изменить код MSIL и, следовательно, изменить контрольную сумму, удаление всех подпрограмм с помощью сценариев dnlib было бы очень трудоемкой задачей. Если бы я мог заблокировать конкретное исключение, я бы мог избежать этой трудоемкой задачи.
Редактировать: Я помню, как видел в некоторых приложениях WinForms "Возникло исключение, хотите ли вы продолжить или выйти?" Конечно, это то, что мне нужно, если я могу эффективно отклонить исключение и продолжить, как если бы оно никогда не происходило.
Вот пример. Как я могу включить это?
Пример:
Обратите внимание, что я не пишу код. Я редактирую скомпилированный exe-файл с помощью dnspy, поэтому я не могу легко изменить код, мне приходится редактировать байт-код MSIL вручную.
public void Test(){
throw new ArgumentException("ignore this");
MessageBox.Show("Successfully ignored exception");
}