简体   繁体   中英

Exception is thrown in the "wrong line" (C#, Windows Form, VS2017)

I have a strange problem, which is probably normal, although I'd be grateful for some explanation.

I'm writing a C# Windows Form program and whenever my code runs into an exception, it is thrown in the line of the main Form's generated code, here: 在此处输入图像描述

My question is, why is it? The exception above is thrown in a different line of my code and yet, it shows here. I debugged my code, because I had idea where the exception might occur and when I reached the suspicious line, the Visual Studio jumped to the line on the picture and throwed the exception.

It is really inconvenient as I can't tell where some of my exceptions are truly thrown and it slows the bug solving process.

Can someone explain why this might be and how to "solve" this?

It's not the wrong line per se; you've invoked (or caused the invoking of) some method using reflection, that something has crashed with an unhandled exception and your main thread has then experienced an exception and brought it to your attention.

The main thread was busy doing application.run when this domino effect stopped it, so it's the "right line" for that thread, it's just that it's probably not the thread that was doing the work that crashed. Use the inner exception details to work out where the problem lies or give a try at Klaus' suggestion to turn on "break when thrown".

My guess is you've been doing something on a background thread (do you have any background workers anywhere? Do they access arrays in their DoWork?) and crashed it; it's a fairly common cause of these in winforms apps

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM