Error Handling

PyTNG is designed so that Python level exceptions can (and should) be caught by the calling code. However, as the trajectory reading itself is done by Cython at the C level with the GIL released, low level trajectory reading errors are caught by more general exceptions at the Python level.

The success of the last call to get_blockid(), get_positions(), get_box() and related methods can be checked using the TNGCurrentIntegratorStep.read_success property, which returns True if the attempt to read was successful or False if not. Success (True) indicates that there was data of the requested block type present at the current step, while failure (False) indicates either no data present, file corruption or a file reading exception not caught by PyTNG. These types of data reading failures are treated on an equal footing as they are in the TNG library.