def _read_data_file(fpath, load_method, exception_type):
    """Load the data in the file using a given load method.

    This function performs additional exception handling during the
    data loading process.

    Parameters
    ----------
    fpath : str
        Filepath containing data to load.
    load_method : callable
        Function that can be called on a stream to load the
        data it contains.
    exception_type : `Exception`
        A class indicating the type of exception to raise if
        data cannot be read.

    Returns
    -------
    data : dict
        Dictionary representation of the data in the file.

    Raises
    ------
    exception_type
        If there was an error loading the data.
    """

    try:
        with open(fpath, 'r') as f:
            data = load_method(f)
    except exception_type as e:
        msg = 'Error:\n{}\nCannot read file: "{}"'.format(e, fpath)
        raise exception_type(msg) from e

    return data