Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MegEngine 天元
MegEngine
提交
49f02e71
MegEngine
项目概览
MegEngine 天元
/
MegEngine
1 年多 前同步成功
通知
403
Star
4705
Fork
582
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
MegEngine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
49f02e71
编写于
7月 06, 2020
作者:
M
Megvii Engine Team
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
chore(format): format megbrain/exception.h
GitOrigin-RevId: 744ed23b2daabefac9d23e036421a0e21241138e
上级
9667d93c
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
74 addition
and
80 deletion
+74
-80
src/core/include/megbrain/exception.h
src/core/include/megbrain/exception.h
+74
-80
未找到文件。
src/core/include/megbrain/exception.h
浏览文件 @
49f02e71
...
...
@@ -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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录