MatN work for versatile appimage creation for all types of os
[goodguy/cinelerra.git] / cinelerra-5.1 / tools / makeappimagetool / includes / desktopfile_exceptions.h
1 #pragma once
2
3 // system includes
4 #include <stdexcept>
5 #include <string>
6
7 namespace linuxdeploy {
8     namespace desktopfile {
9         /**
10          * Desktop file library's base exception.
11          */
12         class DesktopFileError : public std::runtime_error {
13         public:
14             explicit DesktopFileError(const std::string& message = "unknown desktop file error") : runtime_error(message) {};
15         };
16
17         /**
18          * Exception thrown by DesktopFileReader on parsing errors.
19          */
20         class ParseError : public DesktopFileError {
21         public:
22             explicit ParseError(const std::string& message = "unknown parse error") : DesktopFileError(message) {};
23         };
24
25         /**
26          * I/O exception, thrown if files cannot be opened, reading or writing fails etc.
27          */
28         class IOError : public DesktopFileError {
29         public:
30             explicit IOError(const std::string& message = "unknown I/O error") : DesktopFileError(message) {};
31         };
32
33         class UnknownSectionError : public DesktopFileError {
34         public:
35             explicit UnknownSectionError(const std::string& section) : DesktopFileError("unknown section: " + section) {};
36         };
37
38         /**
39          * Cast from one type to another couldn't be performed.
40          */
41         class BadLexicalCastError : public DesktopFileError {
42         public:
43             BadLexicalCastError() : DesktopFileError("Bad lexical cast") {}
44         };
45     }
46 }