たとえば、これは runtime_error を使用して行う方法です
#include <exception>
#include <filesystem>
std::exception &foo(){
try {
if(!std::filesystem::is_directory(std::filesystem::path("sdfsdf"))){
throw std::runtime_error("Error14");
}
}
catch (std::exception &e) {
return e;
}
}
int main(){
foo().what();
// then i do smth with this error
}
似たようなことをする方法ですが、std :: ファイルシステムからエラーが返されます。
std::filesystem::filesystem_error
私はこれを試しました - >
#include <filesystem>
std::filesystem::filesystem_error &foo()
{
try {
if(!std::filesystem::is_directory(std::filesystem::path("sdfsdf"))){
throw std::filesystem::filesystem_error("ERROR14", std::error_code());
}
}
catch (std::filesystem::filesystem_error &e) {
// if (e.code == success)
{
return e;
}
}
}
int main()
{
foo();
}
例外がない場合にそのような「e」を返す方法(つまり、スロー)