posix/except: add exception class for EAI_* codes
This commit is contained in:
parent
e437913746
commit
d80855aedf
@ -97,3 +97,41 @@ error::throw_code (int code)
|
||||
CHECK_NEQ (code, 0);
|
||||
throw error (code);
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
using util::posix::eai;
|
||||
|
||||
#include <netdb.h>
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
eai::eai (int code):
|
||||
runtime_error (gai_strerror (code)),
|
||||
m_code (code)
|
||||
{ ; }
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
int
|
||||
eai::code (void) const
|
||||
{
|
||||
return m_code;
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
void
|
||||
eai::try_code (int code)
|
||||
{
|
||||
if (code)
|
||||
throw_code (code);
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
void
|
||||
eai::throw_code (int code)
|
||||
{
|
||||
throw eai { code };
|
||||
}
|
||||
|
@ -50,6 +50,19 @@ namespace util::posix {
|
||||
private:
|
||||
int m_code;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
class eai : public std::runtime_error {
|
||||
public:
|
||||
explicit eai (int code);
|
||||
int code (void) const;
|
||||
|
||||
static void try_code (int);
|
||||
static void throw_code [[gnu::noreturn]] (int);
|
||||
|
||||
private:
|
||||
int m_code;
|
||||
};
|
||||
};
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user