4#ifndef _Stroika_Foundation_IO_FileSystem_Exception_h_
5#define _Stroika_Foundation_IO_FileSystem_Exception_h_ 1
7#include "Stroika/Foundation/StroikaPreComp.h"
12#include "Stroika/Foundation/Execution/Exceptions.h"
13#include "Stroika/Foundation/IO/FileSystem/Common.h"
24 using Characters::String;
62 Exception (error_code errCode,
const path& p1 = {},
const path& p2 = {});
76 [[noreturn]]
static void ThrowPOSIXErrNo (errno_t errNo,
const path& p1 = {},
const path& p2 = {});
82 template <
typename INT_TYPE>
97 [[noreturn]]
static void ThrowSystemErrNo (
int sysErr,
const path& p1 = {},
const path& p2 = {});
98 [[noreturn]]
static void ThrowSystemErrNo (
const path& p1,
const path& p2 = {});
100#if qStroika_Foundation_Common_Platform_Windows
104 template <
typename WINDOWS_API_RESULT>
105 static void ThrowIfZeroGetLastError (WINDOWS_API_RESULT test,
const path& p1 = {},
const path& p2 = {});
109 static Characters::String mkMsg_ (error_code errCode,
const path& p1,
const path& p2);
120#include "Exception.inl"
String is like std::u32string, except it is much easier to use, often much more space efficient,...
static INT_TYPE ThrowPOSIXErrNoIfNegative(INT_TYPE returnCode, const path &p1={}, const path &p2={})
static void ThrowPOSIXErrNo(errno_t errNo, const path &p1={}, const path &p2={})
treats errNo as a POSIX errno value, and throws a FileSystem::Exception (subclass of @std::filesystem...
static void ThrowSystemErrNo(int sysErr, const path &p1={}, const path &p2={})
treats errNo as a platform-defined error number, and throws a FileSystem::Exception (subclass of @std...