提交 49f02e71 编写于 作者: M Megvii Engine Team

chore(format): format megbrain/exception.h

GitOrigin-RevId: 744ed23b2daabefac9d23e036421a0e21241138e
上级 9667d93c
...@@ -6,7 +6,8 @@ ...@@ -6,7 +6,8 @@
* *
* Unless required by applicable law or agreed to in writing, * Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an * software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT ARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * "AS IS" BASIS, WITHOUT ARRANTIES OR CONDITIONS OF ANY KIND, either express or
* implied.
*/ */
#pragma once #pragma once
...@@ -75,12 +76,11 @@ namespace mgb { ...@@ -75,12 +76,11 @@ namespace mgb {
//! the most general MegBrain exception type; also base class for all megbrain //! the most general MegBrain exception type; also base class for all megbrain
//! exceptions //! exceptions
class MegBrainError: public std::exception { class MegBrainError : public std::exception {
protected: protected:
std::string m_msg; std::string m_msg;
public: public:
/*! /*!
* \brief base class for extra information to be associated with an * \brief base class for extra information to be associated with an
* exception * exception
...@@ -92,100 +92,94 @@ class MegBrainError: public std::exception { ...@@ -92,100 +92,94 @@ class MegBrainError: public std::exception {
MegBrainError(const std::string& msg) : m_msg(msg) { init(); } MegBrainError(const std::string& msg) : m_msg(msg) { init(); }
const char *what() const noexcept override { const char* what() const noexcept override { return m_msg.c_str(); }
return m_msg.c_str();
}
/*! /*!
* \brief get associated extra info, or nullptr * \brief get associated extra info, or nullptr
*/ */
const ExtraInfo* extra_info() const { const ExtraInfo* extra_info() const { return m_extra_info.get(); }
return m_extra_info.get();
}
/*! /*!
* \brief set extra info * \brief set extra info
*/ */
template<typename T> template <typename T>
MegBrainError& extra_info(T &&ptr) { MegBrainError& extra_info(T&& ptr) {
m_extra_info = ptr; m_extra_info = ptr;
return *this; return *this;
} }
~MegBrainError() noexcept = default; ~MegBrainError() noexcept = default;
private: private:
std::shared_ptr<ExtraInfo> m_extra_info; std::shared_ptr<ExtraInfo> m_extra_info;
void init(); void init();
}; };
//! base class for system error: error caused by uncontrollable environment //! base class for system error: error caused by uncontrollable environment
class SystemError : public MegBrainError { class SystemError : public MegBrainError {
public: public:
using MegBrainError::MegBrainError; using MegBrainError::MegBrainError;
}; };
/*! /*!
* \brief exception to be thrown if failing to allocate memory * \brief exception to be thrown if failing to allocate memory
*/ */
class MemAllocError: public SystemError { class MemAllocError : public SystemError {
public: public:
using SystemError::SystemError; using SystemError::SystemError;
}; };
class CudaError final : public SystemError {
class CudaError final: public SystemError { public:
public:
/*! /*!
* \brief get extra info for current cuda status, to be appended in * \brief get extra info for current cuda status, to be appended in
* error message * error message
*/ */
static std::string get_cuda_extra_info(); static std::string get_cuda_extra_info();
CudaError(const std::string &msg); CudaError(const std::string& msg);
}; };
class AssertionError final : public MegBrainError {
class AssertionError final: public MegBrainError { public:
public:
using MegBrainError::MegBrainError; using MegBrainError::MegBrainError;
}; };
//! datatype conversion error //! datatype conversion error
class ConversionError final: public MegBrainError { class ConversionError final : public MegBrainError {
public: public:
using MegBrainError::MegBrainError; using MegBrainError::MegBrainError;
}; };
class TensorCopyOverlapError final: public MegBrainError { class TensorCopyOverlapError final : public MegBrainError {
public: public:
using MegBrainError::MegBrainError; using MegBrainError::MegBrainError;
}; };
class TensorReshapeError final: public MegBrainError { class TensorReshapeError final : public MegBrainError {
public: public:
using MegBrainError::MegBrainError; using MegBrainError::MegBrainError;
}; };
class SerializationError final: public MegBrainError { class SerializationError final : public MegBrainError {
public: public:
using MegBrainError::MegBrainError; using MegBrainError::MegBrainError;
}; };
class MegDNNError final: public MegBrainError { class MegDNNError final : public MegBrainError {
public: public:
using MegBrainError::MegBrainError; using MegBrainError::MegBrainError;
}; };
//! megbrain internal error; should be treated as a bug //! megbrain internal error; should be treated as a bug
class InternalError final: public MegBrainError { class InternalError final : public MegBrainError {
public: public:
using MegBrainError::MegBrainError; using MegBrainError::MegBrainError;
}; };
class TimeoutError final: public MegBrainError { class TimeoutError final : public MegBrainError {
public: public:
using MegBrainError::MegBrainError; using MegBrainError::MegBrainError;
}; };
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册