diff --git a/modules/io/src/mol/star_writer.cc b/modules/io/src/mol/star_writer.cc index 327d005631c6e656e1e89e954cb9446c8e78c33d..1a017e934d9778d06732661c1feffa3d7562f696 100644 --- a/modules/io/src/mol/star_writer.cc +++ b/modules/io/src/mol/star_writer.cc @@ -21,29 +21,29 @@ namespace ost{ namespace io{ -StarWriter::StarWriter(std::ostream& stream): filename_("<stream>"), - file_open_(true) { +StarWriter::StarWriter(std::ostream& stream): filename_("<stream>") { if(!stream) { - file_open_ = false; + std::stringstream ss; + ss << "Cannot open stream: [Errno " << errno << "] " + << strerror(errno) << std::endl; + throw IOException(ss.str()); } stream_.push(stream); } StarWriter::StarWriter(const String& filename): filename_(filename), - file_open_(true), fstream_(filename.c_str()) { if (!fstream_) { - file_open_ = false; + std::stringstream ss; + ss << "Cannot open " << filename_ << ": [Errno " << errno << "] " + << strerror(errno) << std::endl; + throw IOException(ss.str()); } stream_.push(fstream_); } void StarWriter::Write(const String& data_name) { - if (!file_open_) { - throw IOException("yolo"); - } - // write data header stream_ << "data_" << data_name << std::endl; diff --git a/modules/io/src/mol/star_writer.hh b/modules/io/src/mol/star_writer.hh index 3ef9c64c06cbc64baad51867828acc8378caf445..41e6fbfa875a01717db79066148f7564a218e7c2 100644 --- a/modules/io/src/mol/star_writer.hh +++ b/modules/io/src/mol/star_writer.hh @@ -296,7 +296,6 @@ public: void Write(const String& data_name); private: String filename_; - bool file_open_; std::ofstream fstream_; boost::iostreams::filtering_stream<boost::iostreams::output> stream_; std::vector<StarWriterObjectPtr> categories_to_write_;