diff --git a/alib2cli/src/builtin/ReadFile.cpp b/alib2cli/src/builtin/ReadFile.cpp index a9e45bf7a9a245301011edf1d2b0bf3062ba1c01..2664061efa16863d4a30af3220a60fdef0ef83fa 100644 --- a/alib2cli/src/builtin/ReadFile.cpp +++ b/alib2cli/src/builtin/ReadFile.cpp @@ -20,6 +20,9 @@ std::string ReadFile::read ( const std::string & filename ) { return std::string ( ( std::istreambuf_iterator < char > ( std::cin ) ), std::istreambuf_iterator < char > ( ) ); } else { std::ifstream t ( filename ); + if ( ! t.is_open ( ) ) { + throw exception::CommonException ( "File could not be opened." ); + } t >> std::noskipws; return std::string ( ( std::istreambuf_iterator < char > ( t ) ), std::istreambuf_iterator < char > ( ) ); } diff --git a/alib2cli/src/builtin/WriteFile.cpp b/alib2cli/src/builtin/WriteFile.cpp index e17baf974fc51505c623790a39a5fe457986d80e..b6369141f509262c2ce825fcebf31d68cf29acdc 100644 --- a/alib2cli/src/builtin/WriteFile.cpp +++ b/alib2cli/src/builtin/WriteFile.cpp @@ -16,8 +16,13 @@ namespace builtin { void WriteFile::write ( const std::string & filename, const std::string & data ) { if ( filename == "-" ) std::cout << data; - else - std::ofstream ( filename ) << data; + else { + std::ofstream t ( filename ); + if ( ! t.is_open ( ) ) { + throw exception::CommonException ( "File could not be opened." ); + } + t << data; + } } auto WriteFileString = registration::AbstractRegister < WriteFile, void, const std::string &, const std::string & > ( WriteFile::write );