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

chore(format): format megbrain/exception.h

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