62 lines
2.1 KiB
C++
62 lines
2.1 KiB
C++
#include "exceptions.h"
|
|
#include <iostream>
|
|
|
|
FileOperationException::FileOperationException(std::string _errorName,
|
|
std::string _targetFileName)
|
|
: errorName(_errorName), targetFileName(_targetFileName){};
|
|
|
|
void FileOperationException::displayExceptionName() {
|
|
std::cout << "\033[1;31mException " << this->errorName << "\033[0m"
|
|
<< std::endl;
|
|
}
|
|
|
|
FileOpenException::FileOpenException(std::string _targetFileName)
|
|
: FileOperationException("FileOpenException", _targetFileName){};
|
|
|
|
void FileOpenException::displayDetailedInformation() {
|
|
this->displayExceptionName();
|
|
std::cout << "Failed to open file named " << this->targetFileName
|
|
<< std::endl;
|
|
}
|
|
|
|
FileRWException::FileRWException(std::string _errorName,
|
|
std::string _targetFileName,
|
|
RWMode _readWriteMode)
|
|
: FileOperationException(_errorName, _targetFileName),
|
|
readWriteMode(_readWriteMode){};
|
|
|
|
std::string FileRWException::getRWMode() {
|
|
switch (this->readWriteMode) {
|
|
case read:
|
|
return "Read";
|
|
break;
|
|
case write:
|
|
return "Write";
|
|
break;
|
|
case readWrite:
|
|
return "Read/Write";
|
|
break;
|
|
default:
|
|
return "Unknown";
|
|
}
|
|
}
|
|
|
|
FileReadException::FileReadException(std::string _targetFilename,
|
|
RWMode _readWriteMode)
|
|
: FileRWException("FileReadException", _targetFilename, _readWriteMode){};
|
|
|
|
void FileReadException::displayDetailedInformation() {
|
|
this->displayExceptionName();
|
|
std::cout << "Read file " << this->targetFileName
|
|
<< " error. I/O mode: " << this->getRWMode() << std::endl;
|
|
}
|
|
|
|
FileWriteException::FileWriteException(std::string _targetFilename,
|
|
RWMode _readWriteMode)
|
|
: FileRWException("FileWriteException", _targetFilename, _readWriteMode){};
|
|
|
|
void FileWriteException::displayDetailedInformation() {
|
|
this->displayExceptionName();
|
|
std::cout << "Write file " << this->targetFileName
|
|
<< " error. I/O mode: " << this->getRWMode() << std::endl;
|
|
} |