For example, currently only 33.33 of the SMW code base is covered
which means anyone who cares is surely invited to pitch in.

Thanks for working on this James! And indeed, contributions here are much appreciated.

PS: When relying on InvalidArgumentException you get an error message
outside of MW's skin display where MWException generates the exception
message within the current skin.

This is a concern part of the delivery mechanism or presentation layer. Most of these exceptions are thrown from business objects in the domain layer, which does not (or rather, should not) know about the delivery mechanism. Excepts generally should not bubble up from the most specific "lower layers" of a system all the way to the presentation layer. For instance, one should never encounter a DBException outside of the storage layer, as things outside of it should not know a database is used for storage. DBException (or derivatives) might occur in your storage layer of course, though these should be caught and dealt with appropriately (ie by throwing a OrderUpdateFailedException). The same applies to most of the newly added exceptions. The fault does not lie with the class throwing them, but with something higher up in the call stack.

Unfortunately this is generally not done well within MediaWiki or SMW. Perhaps this is not all that surprising if one considers that at many places the separation of concerns is done at the character level :)


Jeroen De Dauw
Don't panic. Don't be evil. ~=[,,_,,]:3