H5E_PUSH2 pushes a new error record onto the error stack specified by
The error record contains the error class identifier
class_id, the major and minor message identifiers
minor_id, the function name
func where the error was detected, the file name
file and line number
line within that file where the error was detected, and an error description
The major and minor errors must be in the same error class.
The function name, filename, and error description strings must be statically allocated.
msg can be a format control string with additional arguments. This design of appending additional arguments is similar to the system and C functions