@@ -59,24 +59,6 @@ using std::endl;
5959using std::string;
6060using std::vector;
6161
62- struct fr_expt : public std ::exception
63- {
64- int64_t err; // error possibly from HTSlib
65- int the_errno; // ERRNO at time of construction
66- string msg; // the message
67- string the_what; // to report
68- fr_expt (const int64_t _err, const string &_msg) :
69- err{_err}, the_errno{errno}, msg{_msg} {
70- std::ostringstream oss;
71- oss << " [error: " << err << " ]["
72- << " ERRNO: " << the_errno << " ]"
73- << " [" << strerror (the_errno) << " ][" << msg << " ]" ;
74- the_what = oss.str ();
75- }
76- fr_expt (const string &_msg) : fr_expt(0 , _msg) {}
77- const char *
78- what () const noexcept override { return the_what.c_str (); }
79- };
8062
8163
8264
@@ -204,7 +186,7 @@ bam_set1_wrapper(bam1_t *bam,
204186 if (data_len + l_aux > bam->m_data ) {
205187 const int ret = sam_realloc_bam_data (bam, data_len + l_aux);
206188 if (ret < 0 ) {
207- throw fr_expt (ret, " Failed to allocate memory for BAM record" );
189+ throw dnmt_error (ret, " Failed to allocate memory for BAM record" );
208190 }
209191 }
210192 auto data_iter = bam->data ;
@@ -581,7 +563,7 @@ truncate_overlap(const bam1_t *a, const uint32_t overlap, bam1_t *c) {
581563 isize, // rlen from new cigar
582564 c_seq_len, // truncated seq length
583565 8 ); // enough for the 2 tags?
584- if (ret < 0 ) throw fr_expt (ret, " bam_set1_wrapper" );
566+ if (ret < 0 ) throw dnmt_error (ret, " bam_set1_wrapper" );
585567 // ADS: might it be better to fill `c->data` directly?
586568 free (c_cig);
587569
@@ -682,7 +664,7 @@ merge_overlap(const bam1_t *a, const bam1_t *b,
682664 c_seq_len, // merged sequence length
683665 8 ); // enough for 2 tags?
684666 free (c_cig);
685- if (ret < 0 ) throw fr_expt (ret, " bam_set1_wrapper in merge_overlap" );
667+ if (ret < 0 ) throw dnmt_error (ret, " bam_set1_wrapper in merge_overlap" );
686668 // Merge the sequences by bytes
687669 merge_by_byte (a, b, c);
688670
@@ -746,7 +728,7 @@ merge_non_overlap(const bam1_t *a, const bam1_t *b,
746728 c_seq_len, // merged sequence length
747729 8 ); // enough for 2 tags of 1 byte value?
748730 free (c_cig);
749- if (ret < 0 ) throw fr_expt (ret, " bam_set1 in merge_non_overlap" );
731+ if (ret < 0 ) throw dnmt_error (ret, " bam_set1 in merge_non_overlap" );
750732
751733 merge_by_byte (a, b, c);
752734
0 commit comments