Как преднамеренно завершить работу приложения с AccessViolationException в c #?
У меня есть консольное приложение, в котором используется неуправляемая DLL, которая в конечном итоге дает сбой из-за исключений нарушения прав доступа.Из-за этого мне нужно намеренно бросить AccessViolationException
, чтобы проверить, как он ведет себя при определенных обстоятельствах.
Кроме того, это должен быть конкретно AccessViolationException
, поскольку это исключение не обрабатывается блоками перехвата.
Удивительно, но это не работает:
public static void Crash()
{
throw new AccessViolationException();
}
И этого:
public static unsafe void Crash()
{
for (int i = 1; true; i++)
{
var ptr = (int*)i;
int value = *ptr;
}
}