I have c#.net code which calls a method from another external/referenced .net assembly. This method I am calling throws an exception if a certain property from the object I am passing it is null. Here it is in a nutshell:
public void Add(string key, object obj)
{
..
//if the Foo property from obj is null then
throw new Exception("Foo property is null or empty")
..
}
In my client code which calls the DLL’s Add method, I would like to be able to detect that this particular exception was raised, maybe distinguished by its “Foo property is null or empty” message. Currently, I get a NullReferenceException when it hits this method, so I catch this exception.
Question1:
Can I get the error message associated with the exception being thrown by the code I am calling (in the referenced assembly)??
Question2:
Is this considered bad practice or maybe just atypical?
Obviously, I can disassemble the third-party DLL to discover that my obj I’m passing in must have this “Foo” property set. So, my question here is somewhat for the sake of exercise (and because I’m a n00b).
Catching System.Exception and showing the exceptions Message property is all I needed. At first, I kept getting a NullReferenceException with “Object reference not set to instant of an object” message at the Add method, but I was expecting to get an Exception with the message “Foo property is null or empty” error. Some condition changed in my code and I now get what I expect.