MVC3's DependencyResolver is a service locator, first and foremost. It is essentially the lovechild of MVC and the Common Service Locator (commonservicelocator.codeplex.com). The differences between a CSL service locator and MVC3's DependencyResolver is that the MVC architects decided that they needed a safer way of handling cases where services cannot be resolved through it, and the answer they chose was that the implementation of IDependencyResolver should return null in these circumstances.
With CSL implementations of IServiceLocator, the standard practice is to throw an ActivationException which allows for a standardised exception for handling these cases.
With MVC, the framework will call the DependencyResolver to try and resolve a configured service. If it cannot find a suitable service, it uses a default.
E.g., when it wants to find an IControllerFactory, it will check the DependencyResolver first. If it fails there, it will use the DefaultControllerFactory configured through ControllerBuilder.SetControllerFactory(...). Because of this check-first approach, it's better to return null then let a container specific exception bubble up.
This means that you must catch/swallow any exception at this point, as it is not MVC framework's responsibility to handle it for you (the onus should be on the container/IDependencyResolver itself).
You could log this at this stage, but the practice with MVC3 is to return null in these instances.