-
Notifications
You must be signed in to change notification settings - Fork 2
/
LibGitException.h
69 lines (60 loc) · 2.41 KB
/
LibGitException.h
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#ifndef LIB_GIT_EXCEPTION_H
#define LIB_GIT_EXCEPTION_H
#include "Exception.h"
#include <git2.h>
#include "libgit2wrapper_global.h"
namespace Git
{
/**
* @brief A LibGitException kivételosztály annak jelzésére szolgál, hogy a LibGit2 könyvtár jelzett hibát.
* A hibát ilyenkor az eredeti hibaüzenettel és hibakóddal dobjuk tovább. Gyakorlatilag bármely függvény
* hívásakor felmerülhet.
*
* @note A hibakódok és a hibaosztályok az <út a LibGit2 könyvtárhoz>/include/git2/errors.h headerben találhatóak
* meg.
*/
class LIBGIT2WRAPPERSHARED_EXPORT LibGitException : public Git::Exception
{
private:
int errorClass;
int errorCode;
public:
/**
* @brief LibGitException konstruktor. Akkor használjuk, ha egy művelet során hibakódot kaptunk, de a
* a LibGit2 könyvtár mégsem állította be a hibaállapotát. (Valószínűleg a felhasználó szakította meg a
* műveletet.)
* @param message
* A hiba üzenete
* @param code
* A runtime hibakód. Különbözik a hibaosztálytól.
*/
LibGitException(std::string message, int code) : Git::Exception(std::string(message))
, errorClass(GITERR_NONE)
, errorCode(code)
{
}
/**
* @brief LibGitException konstruktor.
* @param error
* LibGit2 hiba, ami alapján kivételt generálunk.
* @param code
* A runtime hibakód. Különbözik a hibaosztálytól.
*/
LibGitException(const git_error& error, int code) : Git::Exception(std::string(error.message))
, errorClass(error.klass)
, errorCode(code)
{
}
/**
* @brief getErrorClass Hibaosztály lekérdezése.
* @return Hibaosztály.
*/
int getErrorClass() const noexcept { return errorClass; }
/**
* @brief getErrorCode Hibakód lekérdezése.
* @return Hibakód.
*/
int getErrorCode() const noexcept { return errorCode; }
};
}
#endif //LIB_GIT_EXCEPTION_H