.NET 4.x Возникает исключение, минуя try-catch - C#
Формулировка задачи:
Всем добрый день.
Имею следующую проблему. Написана серверная часть программы, которая из определенной очереди забирает в однопоточном режиме запросы и выполняет их в отдельных потоках. Все работает вроде бы круто, пока не стали проводить нагрузочное тестирование. И тут появились некоторые подводные камни, точнее один основной большой камень. При нагрузке сервера через некоторое время(каждый раз примерно разное) появляется окошко, что произошла ошибка в приложении и предложение завершить приложение и отладить. В инфо ничего вразумительного не написано, но когда закрываешь это окошко, в консоль пишется исключение:
Звездочками пометил свои пользовательские методы и имена файлов. Казалось бы все тривиально и в исключении все написано. Но весь смак в том, что весь код обложен try-ями вида:
И данное исключение не исключение Т.е. код, на который идет ссылка в трейсе лежит внутри выше описанного try-я. Собственно у меня и вопрос, может ли быть так, что исключение не перехватывается в силу каких-либо обстоятельств, и если это возможно, то какие должны быть обстоятельства?
Всем заранее спасибо за помощь.
Необработанное исключение:Необработанное исключение: System.Reflection.TargetIn
vocationException: Адресат вызова создал исключение. ---> System.AccessViolation
Exception: Попытка чтения или записи в защищенную память. Это часто свидетельств
ует о том, что другая память повреждена.
в CryptoPro.Sharpei.NetDetours.NativeDetourEntryPoint.OnAssemblyLoadEvent(Ass
embly loadedAssembly)
в System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnl
y, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boo
lean& bNeedSecurityCheck)
в System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheck
This, Boolean fillCache)
в System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean sk
ipVisibilityChecks, Boolean skipCheckThis, Boolean fillCache)
в System.Activator.CreateInstance(Type type, Boolean nonPublic)
в System.Xml.Serialization.TempAssembly.get_Contract()
в System.Xml.Serialization.TempAssembly.InvokeReader(XmlMapping mapping, XmlR
eader xmlReader, XmlDeserializationEvents events, String encodingStyle)
в System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, Str
ing encodingStyle, XmlDeserializationEvents events)
в System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader)
в ********************(********) в **********************.cs:строка 377
в ********************(********) в **********************.cs:строка 134
--- Конец трассировки внутреннего стека исключений ---
в System.RuntimeMethodHandle._InvokeMethodFast(IRuntimeMethodInfo method, Obj
ect target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAtt
ributes, RuntimeType typeOwner)
в System.RuntimeMethodHandle.InvokeMethodFast(IRuntimeMethodInfo method, Obje
ct target, Object[] arguments, Signature sig, MethodAttributes methodAttributes,
RuntimeType typeOwner)
в System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeA
ttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibi
lityChecks)
в System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeA
ttr, Binder binder, Object[] parameters, CultureInfo culture)
в System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
в ********************(********) в **********************.cs:строка 83
в ********************(********) в **********************.cs:строка 100
в ********************(********) в **********************.c
s:строка 79
в System.Threading.ThreadHelper.ThreadStart_Context(Object state)
в System.Threading.ExecutionContext.runTryCode(Object userData)
в System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCle
anup(TryCode code, CleanupCode backoutCode, Object userData)
в System.Threading.ExecutionContext.RunInternal(ExecutionContext executionCon
text, ContextCallback callback, Object state)
в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, Co
ntextCallback callback, Object state, Boolean ignoreSyncCtx)
в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, Co
ntextCallback callback, Object state)
в System.Threading.ThreadHelper.ThreadStart(Object obj)
try { } catch(Exception ex) { }
Решение задачи: «.NET 4.x Возникает исключение, минуя try-catch»
textual
Листинг программы
using System.Runtime.ExceptionServices; .. [HandleProcessCorruptedStateExceptions] static void Main() { try { // этот метод может привести к падению приложения! dangerousMethod(); } catch(Exception e) { // если метод dangerousMethod() создал ошибку которая приводит к падению Console.WriteLine("не упало"); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д