Exceptions should occur whenever a method or a member of a class cannot perform any task that it is intended to perform.
So, for the property installer, if the setter cannot set the property, it should throw an exception.
As for whether you should catch and reconstruct it, the answer will be yes, but only if you need to handle the exception right away in the installer before passing its stack ... but registration is not a reason to do it. In general, you should implement end-to-end exception logging at a higher level where the exception will NOT be re-selected ... if you care about these end-to-end issues higher than somewhere in the stack, then no, definitely not catch and re-throw one and the same exception.
However, if you are writing a tool or framework library where you want your component clients to have a well-defined set of expected exceptions, and you have defined your own custom exceptions that your component will use for client code and which client components expect to see, then you may want to catch the exceptions thrown by the CLR and instead change your own custom exceptions. Always include the actual base exception in your own type of InnerException before passing it to the stack so that the data in it is accessible to any system that ultimately consumes it.
Charles Bretana
source share