Looking through the functions in the System module it looks like a big mix between throwing an exception on error or returning the errno from the function. Is there a good reason for this mix? Is this something that should be fixed (other than more documentation on which functions behaves how)?