I don't see the need for the custom exceptions we have here,
https://github.com/sgrid/pysgrid/blob/master/pysgrid/custom_exceptions.py
They add an unnecessary extra complexity layer and they are a burden to maintainers. In the end all those exceptions are ValueErrors.
Also, we need to mimic pyugrid messages and return what is failing instead of just failing.
PS: I just fixed a dataset thanks to pyugrid's messages saying what variables where missing or in a non-compliant form.