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 );