Files
BasicsOfComputerSoftwareEng…/OOP/11/Exercise01/exceptions.cpp
2023-05-09 14:52:54 +08:00

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