I have a question how garbage collection works in .NET. I have a website, which calls a class and then that class calls another class. Website1 --> class1 --> class2. If class2 throws an exception which is caught by Website1 and in the Finaly statement I set class1 = Nothing, would this clean up any and all objects tha were initialized up to the exception? I would like your answer and maybe a link to some good article about this topic.