Browse Source

Catch exception in FileOutputStream destructor

Patrick-Christopher Mattulat 11 months ago
parent
commit
ab17a64a11
1 changed files with 13 additions and 1 deletions
  1. 13 1
      source/ls-std/io/FileOutputStream.cpp

+ 13 - 1
source/ls-std/io/FileOutputStream.cpp

@@ -7,6 +7,8 @@
  *
  * */
 
+#include <exception>
+#include <iostream>
 #include <ls-std/core/exception/FileOperationException.hpp>
 #include <ls-std/io/FileOutputStream.hpp>
 #include <ls-std/io/evaluator/FileExistenceEvaluator.hpp>
@@ -17,6 +19,9 @@ using ls::std::core::type::byte_field;
 using ls::std::io::File;
 using ls::std::io::FileExistenceEvaluator;
 using ls::std::io::FileOutputStream;
+using std::cout;
+using std::endl;
+using std::exception;
 using std::ios;
 
 FileOutputStream::FileOutputStream(const File &_file) : Class("FileOutputStream"), file(_file)
@@ -31,7 +36,14 @@ FileOutputStream::FileOutputStream(const File &_file, bool _append) : Class("Fil
 
 FileOutputStream::~FileOutputStream() noexcept
 {
-  this->_close();
+  try
+  {
+    this->_close();
+  }
+  catch (const exception &_exception)
+  {
+    cout << "could not close file output stream: " << _exception.what() << endl;
+  }
 }
 
 void FileOutputStream::close()