openPMD-api
Error.hpp
1 #pragma once
2 
3 #include <exception>
4 #include <string>
5 #include <utility>
6 
7 namespace openPMD
8 {
16 class Error : public std::exception
17 {
18 private:
19  std::string m_what;
20 
21 protected:
22  Error( std::string what ) : m_what( what )
23  {
24  }
25 
26 public:
27  virtual const char * what() const noexcept;
28 
29  Error( Error const & ) = default;
30  Error( Error && ) = default;
31 
32  Error & operator=( Error const & ) = default;
33  Error & operator=( Error && ) = default;
34 
35  virtual ~Error() noexcept = default;
36 };
37 
38 namespace error
39 {
47  {
48  public:
49  std::string backend;
51  std::string backend_in, std::string what );
52  };
53 
60  class WrongAPIUsage : public Error
61  {
62  public:
63  WrongAPIUsage( std::string what );
64  };
65 }
66 }
openPMD::Error
Base class for all openPMD-specific error types.
Definition: Error.hpp:16
openPMD::error::OperationUnsupportedInBackend
An operation was requested that is not supported in a specific backend.
Definition: Error.hpp:46
openPMD
Public definitions of openPMD-api.
Definition: Date.cpp:29
openPMD::error::WrongAPIUsage
The API was used in an illegal way.
Definition: Error.hpp:60