StormByte C++ Library: System module 0.0.9999
StormByte-System is a StormByte library module for encapsulating different process handling over different operating system's complexities
Loading...
Searching...
No Matches
exception.hxx
1#pragma once
2
3#include <StormByte/exception.hxx>
4#include <StormByte/system/visibility.h>
5
6#include <filesystem>
7
12namespace StormByte::System {
21 class STORMBYTE_SYSTEM_PUBLIC Exception: public StormByte::Exception {
22 public:
27 Exception(const std::string& message);
28
32 Exception(const Exception&) = default;
33
37 Exception(Exception&&) noexcept = default;
38
42 Exception& operator=(const Exception&) = default;
43
47 Exception& operator=(Exception&&) noexcept = default;
48
52 virtual ~Exception() noexcept override = default;
53 };
54
59 class STORMBYTE_SYSTEM_PUBLIC FileIOError final: public Exception {
60 public:
65 enum class Operation { Read = 0, Write };
66
72 constexpr static const char* operation_to_string(const Operation& op) noexcept {
73 switch(op) {
74 case Operation::Read: return "read";
75 case Operation::Write: return "write";
76 default: return "unknown";
77 }
78 }
79
85 FileIOError(const std::filesystem::path& file, const Operation& operation);
86
90 FileIOError(const FileIOError&) = default;
91
95 FileIOError(FileIOError&&) noexcept = default;
96
100 FileIOError& operator=(const FileIOError&) = default;
101
105 FileIOError& operator=(FileIOError&&) = default;
106
110 ~FileIOError() noexcept override = default;
111 };
112
117 class STORMBYTE_SYSTEM_PUBLIC ExecutableNotFound: public Exception {
118 public:
123 ExecutableNotFound(const std::filesystem::path& exec);
124
129
134
138 ExecutableNotFound& operator=(const ExecutableNotFound&) = default;
139
143 ExecutableNotFound& operator=(ExecutableNotFound&&) noexcept = default;
144
148 ~ExecutableNotFound() noexcept override = default;
149 };
150}
Exception base class for System.
Definition exception.hxx:21
Exception(const std::string &message)
Exception(Exception &&) noexcept=default
Exception(const Exception &)=default
Exception thrown when an executable is not found.
Definition exception.hxx:117
ExecutableNotFound(const std::filesystem::path &exec)
ExecutableNotFound(const ExecutableNotFound &)=default
ExecutableNotFound(ExecutableNotFound &&) noexcept=default
Exception thrown when a file can not be opened or written.
Definition exception.hxx:59
FileIOError(const std::filesystem::path &file, const Operation &operation)
Operation
File operation.
Definition exception.hxx:65
FileIOError(const FileIOError &)=default
static constexpr const char * operation_to_string(const Operation &op) noexcept
Definition exception.hxx:72
FileIOError(FileIOError &&) noexcept=default