RDKit
Open-source cheminformatics and machine learning.
SanitException.h
Go to the documentation of this file.
1 //
2 // Copyright (C) 2002-2019 Greg Landrum and Rational Discovery LLC
3 //
4 // @@ All Rights Reserved @@
5 // This file is part of the RDKit.
6 // The contents are covered by the terms of the BSD license
7 // which is included in the file license.txt, found at the root
8 // of the RDKit source tree.
9 //
10 
11 #include <RDGeneral/export.h>
12 #ifndef RD_SANITEXCEPTION_H
13 #define RD_SANITEXCEPTION_H
14 
15 #include <RDGeneral/types.h>
16 #include <GraphMol/GraphMol.h>
17 #include <GraphMol/Atom.h>
18 #include <GraphMol/Bond.h>
19 
20 #include <string>
21 #include <vector>
22 #include <exception>
23 
24 namespace RDKit {
25 
26 //! class for flagging sanitization errors
27 class RDKIT_GRAPHMOL_EXPORT MolSanitizeException : public std::exception {
28  public:
29  MolSanitizeException(const char *msg) : d_msg(msg){};
30  MolSanitizeException(const std::string &msg) : d_msg(msg){};
32  : d_msg(other.d_msg){};
33  virtual const char *message() const { return d_msg.c_str(); };
34  virtual ~MolSanitizeException() throw(){};
35  virtual MolSanitizeException *copy() const {
36  return new MolSanitizeException(*this);
37  };
38  virtual std::string getType() const { return "MolSanitizeException"; };
39 
40  protected:
41  std::string d_msg;
42 };
43 
45  : public MolSanitizeException {
46  public:
47  AtomSanitizeException(const char *msg, unsigned int atomIdx)
48  : MolSanitizeException(msg), d_atomIdx(atomIdx){};
49  AtomSanitizeException(const std::string &msg, unsigned int atomIdx)
50  : MolSanitizeException(msg), d_atomIdx(atomIdx){};
52  : MolSanitizeException(other), d_atomIdx(other.d_atomIdx){};
53  unsigned int getAtomIdx() const { return d_atomIdx; };
54  virtual ~AtomSanitizeException() throw(){};
55  virtual MolSanitizeException *copy() const {
56  return new AtomSanitizeException(*this);
57  };
58  virtual std::string getType() const { return "AtomSanitizeException"; };
59 
60  protected:
61  unsigned int d_atomIdx;
62 };
63 
65  : public AtomSanitizeException {
66  public:
67  AtomValenceException(const char *msg, unsigned int atomIdx)
68  : AtomSanitizeException(msg, atomIdx){};
69  AtomValenceException(const std::string &msg, unsigned int atomIdx)
70  : AtomSanitizeException(msg, atomIdx){};
72  : AtomSanitizeException(other){};
73  virtual ~AtomValenceException() throw(){};
75  return new AtomValenceException(*this);
76  };
77  std::string getType() const { return "AtomValenceException"; };
78 };
79 
81  : public AtomSanitizeException {
82  public:
83  AtomKekulizeException(const char *msg, unsigned int atomIdx)
84  : AtomSanitizeException(msg, atomIdx){};
85  AtomKekulizeException(const std::string &msg, unsigned int atomIdx)
86  : AtomSanitizeException(msg, atomIdx){};
88  : AtomSanitizeException(other){};
89  virtual ~AtomKekulizeException() throw(){};
91  return new AtomKekulizeException(*this);
92  };
93  std::string getType() const { return "AtomKekulizeException"; };
94 };
95 
97  public:
98  KekulizeException(const char *msg, const std::vector<unsigned int> &indices)
99  : MolSanitizeException(msg), d_atomIndices(indices){};
100  KekulizeException(const std::string &msg,
101  const std::vector<unsigned int> &indices)
102  : MolSanitizeException(msg), d_atomIndices(indices){};
104  : MolSanitizeException(other), d_atomIndices(other.d_atomIndices){};
105  const std::vector<unsigned int> &getAtomIndices() const {
106  return d_atomIndices;
107  };
108  virtual ~KekulizeException() throw(){};
109  MolSanitizeException *copy() const { return new KekulizeException(*this); };
110  std::string getType() const { return "KekulizeException"; };
111 
112  protected:
113  std::vector<unsigned int> d_atomIndices;
114 };
115 
116 } // namespace RDKit
117 
118 #endif
RDKit::AtomSanitizeException::getAtomIdx
unsigned int getAtomIdx() const
Definition: SanitException.h:53
types.h
RDKit::MolSanitizeException::~MolSanitizeException
virtual ~MolSanitizeException()
Definition: SanitException.h:34
Bond.h
RDKit::AtomKekulizeException::copy
MolSanitizeException * copy() const
Definition: SanitException.h:90
RDKit::KekulizeException::KekulizeException
KekulizeException(const char *msg, const std::vector< unsigned int > &indices)
Definition: SanitException.h:98
GraphMol.h
pulls in RWMol and ROMol
RDKit::AtomKekulizeException::~AtomKekulizeException
virtual ~AtomKekulizeException()
Definition: SanitException.h:89
RDKit::AtomSanitizeException::AtomSanitizeException
AtomSanitizeException(const char *msg, unsigned int atomIdx)
Definition: SanitException.h:47
RDKit::KekulizeException::getAtomIndices
const std::vector< unsigned int > & getAtomIndices() const
Definition: SanitException.h:105
RDKit::AtomKekulizeException::AtomKekulizeException
AtomKekulizeException(const char *msg, unsigned int atomIdx)
Definition: SanitException.h:83
RDKit::AtomSanitizeException::~AtomSanitizeException
virtual ~AtomSanitizeException()
Definition: SanitException.h:54
RDKit::AtomSanitizeException::copy
virtual MolSanitizeException * copy() const
Definition: SanitException.h:55
RDKit::KekulizeException
Definition: SanitException.h:96
RDKit::AtomSanitizeException::AtomSanitizeException
AtomSanitizeException(const std::string &msg, unsigned int atomIdx)
Definition: SanitException.h:49
RDKit::MolSanitizeException::copy
virtual MolSanitizeException * copy() const
Definition: SanitException.h:35
Atom.h
Defines the Atom class and associated typedefs.
RDKit::MolSanitizeException
class for flagging sanitization errors
Definition: SanitException.h:27
RDKIT_GRAPHMOL_EXPORT
#define RDKIT_GRAPHMOL_EXPORT
Definition: export.h:307
RDKit::KekulizeException::KekulizeException
KekulizeException(const KekulizeException &other)
Definition: SanitException.h:103
RDKit::AtomValenceException
Definition: SanitException.h:64
RDKit::AtomValenceException::~AtomValenceException
virtual ~AtomValenceException()
Definition: SanitException.h:73
RDKit::MolSanitizeException::getType
virtual std::string getType() const
Definition: SanitException.h:38
RDKit::AtomValenceException::AtomValenceException
AtomValenceException(const char *msg, unsigned int atomIdx)
Definition: SanitException.h:67
RDKit::AtomKekulizeException::AtomKekulizeException
AtomKekulizeException(const AtomKekulizeException &other)
Definition: SanitException.h:87
RDKit::AtomSanitizeException::getType
virtual std::string getType() const
Definition: SanitException.h:58
RDKit::AtomSanitizeException
Definition: SanitException.h:44
RDKit
Std stuff.
Definition: Atom.h:30
RDKit::MolSanitizeException::MolSanitizeException
MolSanitizeException(const std::string &msg)
Definition: SanitException.h:30
RDKit::MolSanitizeException::message
virtual const char * message() const
Definition: SanitException.h:33
RDKit::KekulizeException::~KekulizeException
virtual ~KekulizeException()
Definition: SanitException.h:108
RDKit::AtomKekulizeException::AtomKekulizeException
AtomKekulizeException(const std::string &msg, unsigned int atomIdx)
Definition: SanitException.h:85
RDKit::MolSanitizeException::MolSanitizeException
MolSanitizeException(const MolSanitizeException &other)
Definition: SanitException.h:31
RDKit::AtomValenceException::copy
MolSanitizeException * copy() const
Definition: SanitException.h:74
RDKit::AtomKekulizeException
Definition: SanitException.h:80
RDKit::AtomValenceException::getType
std::string getType() const
Definition: SanitException.h:77
RDKit::KekulizeException::getType
std::string getType() const
Definition: SanitException.h:110
RDKit::AtomKekulizeException::getType
std::string getType() const
Definition: SanitException.h:93
RDKit::AtomValenceException::AtomValenceException
AtomValenceException(const AtomValenceException &other)
Definition: SanitException.h:71
RDKit::AtomSanitizeException::AtomSanitizeException
AtomSanitizeException(const AtomSanitizeException &other)
Definition: SanitException.h:51
RDKit::MolSanitizeException::MolSanitizeException
MolSanitizeException(const char *msg)
Definition: SanitException.h:29
RDKit::KekulizeException::KekulizeException
KekulizeException(const std::string &msg, const std::vector< unsigned int > &indices)
Definition: SanitException.h:100
RDKit::AtomValenceException::AtomValenceException
AtomValenceException(const std::string &msg, unsigned int atomIdx)
Definition: SanitException.h:69
RDKit::KekulizeException::copy
MolSanitizeException * copy() const
Definition: SanitException.h:109
export.h