8

I feel like I'm missing something obvious here so feel free to point it out to me.

I have a simple unit test to illustrate my problem:

        [Test]
    public void DynamicTest()
    {
        dynamic myDynamic = new ExpandoObject();
        myDynamic.Prop = "abc";
        Assert.AreEqual("abc",myDynamic.Prop);
    }

When I execute the unit test it passes. So far so good.

If I choose to debug the unit test (with all CLR exceptions ticked under Debug -> Exceptions in VS) I see a RuntimeBinderException:

enter image description here

Its not fatal, so I can hit F5 and continue and the test still passes but this seems wrong. Am I doing something wrong here? Its pretty annoying getting these exceptions during general use of our application. Or should I just untick the box for RuntimeBinderException and ignore this?

1 Answer 1

13

You are setting the debugger to break when CLR exceptions are thrown (i.e. first-chance) not unhandled (i.e. second-chance). Obviously, you can untick this and it will go away, but if you want to see first-chance exceptions only from your code, then you can enable the Just My Code option. With Just My Code enabled the debugger will only break on a first-chance exception if it passes through your code. These options don't affect the behavior of your application for a user, only what the debugger does when attached.

Sign up to request clarification or add additional context in comments.

2 Comments

Thanks, Just My Code did the job. Still kind of shocked that these exceptions are by design but thats another issue.
Don't these exceptions affect the performance? Is there a way to avoid them?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.