Revert "Removed the throw code from CMImpl, not needed"

Previous implementation was just notifying the program that the exception
can be thrown, not throwing it. And I cant see how it checks the list in
any way.

This reverts commit 4ea1bec05a9de36902d773f2ebc7cd62bf65ecb5.