summaryrefslogtreecommitdiff
path: root/2004/i/nono/src/utils/errno_exception.h
blob: 436a4c5d889cbca86efd5619ac15464926ec1e4e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#ifndef errno_exception_h
#define errno_exception_h
// errno_exception.h

#include <string>
#include <exception>
#include <cstring>
#include <errno.h>

/// Exception lanc� lorsqu'une erreur est retourn�e par la libc.
class errno_exception : public std::exception
{
    int errno_;
    std::string what_;
  public:
    errno_exception (const std::string &desc, int errno__)
	: errno_ (errno__), what_ (desc + ": " + strerror (errno__)) { }
    errno_exception (int errno__)
	: errno_ (errno__), what_ (strerror (errno__)) { }
    ~errno_exception (void) throw () { }
    virtual const char* what () const throw () { return what_.c_str (); }
    int getErrno (void) const { return errno_; }
};

#endif // errno_exception_h