@@ -149,7 +149,7 @@ namespace h5pp::hdf5 {
149149
150150 [[nodiscard]] inline hsize_t getSizeSelected (const hid::h5s &space) {
151151 hssize_t size = H5Sget_select_npoints (space);
152- if (size < 0 ) h5pp::runtime_error (" getSizeSelected: H5Sget_select_npoints failed" );
152+ if (size < 0 ) throw h5pp::runtime_error (" getSizeSelected: H5Sget_select_npoints failed" );
153153 return type::safe_cast<hsize_t >(size);
154154 }
155155
@@ -1502,17 +1502,17 @@ namespace h5pp::hdf5 {
15021502 auto newDimensions = dataInfo.dataDims .value ();
15031503 if (dataInfo.dataSlab and dataInfo.dataSlab ->extent ) {
15041504 if (dataInfo.dataDims ->size () != dataInfo.dataSlab ->extent ->size ()) {
1505- h5pp::runtime_error (" rank mismatch: \n data dims {}\n data slab {}" ,
1506- dataInfo.dataDims .value (),
1507- dataInfo.dataSlab ->string ());
1505+ throw h5pp::runtime_error (" rank mismatch: \n data dims {}\n data slab {}" ,
1506+ dataInfo.dataDims .value (),
1507+ dataInfo.dataSlab ->string ());
15081508 }
15091509 newDimensions = dataInfo.dataSlab ->extent .value ();
15101510 }
15111511 if (dsetInfo.dsetSlab and dsetInfo.dsetSlab ->offset and dsetInfo.dsetSlab ->extent ) {
15121512 const auto &offset = dsetInfo.dsetSlab ->offset .value ();
15131513 const auto &extent = dsetInfo.dsetSlab ->extent .value ();
15141514 if (newDimensions.size () != offset.size () or newDimensions.size () != extent.size ())
1515- h5pp::runtime_error (" rank mismatch: \n data dims {}\n dset slab {}" , newDimensions, dsetInfo.dsetSlab ->string ());
1515+ throw h5pp::runtime_error (" rank mismatch: \n data dims {}\n dset slab {}" , newDimensions, dsetInfo.dsetSlab ->string ());
15161516 for (size_t idx = 0 ; idx < newDimensions.size (); idx++)
15171517 newDimensions[idx] = std::max (newDimensions[idx], offset[idx] + extent[idx]);
15181518 }
@@ -2017,7 +2017,7 @@ namespace h5pp::hdf5 {
20172017 haddr_t chaddr = 0 ;
20182018 hsize_t chsize = 0 ;
20192019 herr_t eci = H5Dget_chunk_info_by_coord (h5dset, chunkOffset.data (), &mask, &chaddr, &chsize);
2020- if (eci < 0 ) h5pp::runtime_error (" Failed to get chunk info for offset {}" , chunkOffset);
2020+ if (eci < 0 ) throw h5pp::runtime_error (" Failed to get chunk info for offset {}" , chunkOffset);
20212021
20222022 if (chsize == 0 or chaddr == HADDR_UNDEF ) {
20232023 h5pp::logger::log->trace (" Reading chunk at offset {}: chunk is not allocated yet, clearing output buffer" , chunkOffset);
@@ -2664,7 +2664,7 @@ namespace h5pp::hdf5 {
26642664#else
26652665 herr_t reclaim_err = H5Dvlen_reclaim (attrInfo.h5Type .value (), attrInfo.h5Space .value (), H5P_DEFAULT , vdata.data ());
26662666#endif
2667- if (reclaim_err < 0 ) h5pp::runtime_error (" readAttribute: failed to reclaim variable-length array buffer" );
2667+ if (reclaim_err < 0 ) throw h5pp::runtime_error (" readAttribute: failed to reclaim variable-length array buffer" );
26682668 } else {
26692669 // All the elements in the dataset have the same string size
26702670 // The whole dataset is read into a contiguous block of memory.
@@ -2944,7 +2944,7 @@ namespace h5pp::hdf5 {
29442944 /* Step 1: Get the dataset and memory spaces */
29452945 std::array<hsize_t , 1 > dataDims = {extent.value ()}; /* create a simple memory data space */
29462946 hid::h5s dsetSpace = H5Dget_space (info.h5Dset .value ()); /* get a copy of the new file data space for writing */
2947- hid::h5s dataSpace = H5Screate_simple (dataDims.size (), dataDims.data (), nullptr );
2947+ hid::h5s dataSpace = H5Screate_simple (type::safe_cast< int >( dataDims.size () ), dataDims.data (), nullptr );
29482948
29492949 /* Step 2: draw a region in the dataset */
29502950 std::array<hsize_t , 1 > dsetOffset = {offset.value ()};
@@ -3325,12 +3325,12 @@ namespace h5pp::hdf5 {
33253325 herr_t retval = H5Dread (info.h5Dset .value (), h5t_fields, dataSpace, dsetSpace, plists.dsetXfer , vdata.data ());
33263326 if (retval < 0 ) {
33273327 auto h5t_info = getH5TInfo (h5t_fields);
3328- h5pp::runtime_error (" readTableField: H5Dread failed for variable-length field data\n "
3329- " table [{}] | {}{}{}" ,
3330- info.tablePath .value (),
3331- h5t_info.string (),
3332- h5t_info.numMembers ? " \n " : " " ,
3333- h5t_info.string_members ());
3328+ throw h5pp::runtime_error (" readTableField: H5Dread failed for variable-length field data\n "
3329+ " table [{}] | {}{}{}" ,
3330+ info.tablePath .value (),
3331+ h5t_info.string (),
3332+ h5t_info.numMembers ? " \n " : " " ,
3333+ h5t_info.string_members ());
33343334 }
33353335
33363336 // Now vdata contains the dataset selection, and we need to put the data into the user-given container.
@@ -3386,12 +3386,12 @@ namespace h5pp::hdf5 {
33863386
33873387 if (reclaim_err) {
33883388 auto h5t_info = getH5TInfo (h5t_fields);
3389- h5pp::runtime_error (" readTableField: H5Dvlen_reclaim failed when reading variable-length field data\n "
3390- " table [{}] | {}{}{}" ,
3391- info.tablePath .value (),
3392- h5t_info.string (),
3393- h5t_info.numMembers ? " \n " : " " ,
3394- h5t_info.string_members ());
3389+ throw h5pp::runtime_error (" readTableField: H5Dvlen_reclaim failed when reading variable-length field data\n "
3390+ " table [{}] | {}{}{}" ,
3391+ info.tablePath .value (),
3392+ h5t_info.string (),
3393+ h5t_info.numMembers ? " \n " : " " ,
3394+ h5t_info.string_members ());
33953395 }
33963396 return ;
33973397 } else if constexpr (std::is_same_v<DataType, std::vector<std::byte>>) {
0 commit comments