Apollo 10.0
自动驾驶开放平台
exceptions.h
浏览该文件的文档.
1/******************************************************************************
2 * Copyright 2020 The Apollo Authors. All Rights Reserved.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 *****************************************************************************/
16
17#ifndef CYBER_CLASS_LOADER_SHARED_LIBRARY_EXCEPTIONS_H_
18#define CYBER_CLASS_LOADER_SHARED_LIBRARY_EXCEPTIONS_H_
19
20#include <stdexcept>
21#include <string>
22
23namespace apollo {
24namespace cyber {
25namespace class_loader {
26
27#define DECLARE_SHARED_LIBRARY_EXCEPTION(CLS, BASE) \
28 class CLS : public BASE { \
29 public: \
30 explicit CLS(const std::string& err_msg) : BASE(err_msg) {} \
31 ~CLS() throw() {} \
32 };
33
34DECLARE_SHARED_LIBRARY_EXCEPTION(LibraryAlreadyLoadedException,
35 std::runtime_error);
36DECLARE_SHARED_LIBRARY_EXCEPTION(LibraryLoadException, std::runtime_error);
37DECLARE_SHARED_LIBRARY_EXCEPTION(SymbolNotFoundException, std::runtime_error);
38
39} // namespace class_loader
40} // namespace cyber
41} // namespace apollo
42
43#endif // CYBER_CLASS_LOADER_SHARED_LIBRARY_EXCEPTIONS_H_
#define DECLARE_SHARED_LIBRARY_EXCEPTION(CLS, BASE)
Definition exceptions.h:27
class register implement
Definition arena_queue.h:37