---
title: ReportPredefinedErrMsg
description: "用于上报CANN预定义好的用户类错误信息。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/API/runtimeapi/cann_base_api_0005.html
sourcePath: /source/zh/canncommercial/900/API/runtimeapi/cann_base_api_0005.html
indexId: 21c99de5efcf1dabc842d619e9b4a69b68054df49c15823823b96e92df27e1a668
---
# ReportPredefinedErrMsg

#### 函数功能

用于上报CANN预定义好的用户类错误信息。


#### 函数原型

- 不带参数的错误码信息：

```
int32_t ReportPredefinedErrMsg(const char *error_code)
```


- 带参数的错误码信息：

```
int32_t ReportPredefinedErrMsg(const char *error_code, const std::vector<const char *> &key, const std::vector<const char *> &value)
```


针对该接口，还提供了封装该接口的宏REPORT_PREDEFINED_ERR_MSG，宏定义如下：

```
#define REPORT_PREDEFINED_ERRMSG_CHOOSER(_1, _2, _3, NAME, ...) NAME
#define REPORT_PREDEFINED_ERRMSG_1PARAMS(error_code) error_message::ReportPredefinedErrMsg(error_code)
#define REPORT_PREDEFINED_ERRMSG_3PARAMS(error_code, key, value)                                                       \
error_message::ReportPredefinedErrMsg((error_code), (key), (value))
#define
REPORT_PREDEFINED_ERR_MSG
(...)                                                                                 \
REPORT_PREDEFINED_ERRMSG_CHOOSER(__VA_ARGS__, REPORT_PREDEFINED_ERRMSG_3PARAMS, ,                                    \
REPORT_PREDEFINED_ERRMSG_1PARAMS)(__VA_ARGS__)
```


#### 参数说明

| 参数名 | 输入/输出 | 说明 |
| --- | --- | --- |
| error\_code | 输入 | 错误码以6位字符形式体现，例如E10001，其中，第1位表示级别，分为E、W、I，分别表示错误、告警、提示类；第2位表示模块；后4位表示错误码，0000~8999为用户类错误。 CANN预定义好的用户类错误可参见《故障处理(https://www.hiascend.com/document/detail/zh/canncommercial/900/maintenref/troubleshooting/troubleshooting\_0001.html)》中的“错误码参考(https://www.hiascend.comdocument/detail/zh/canncommercial/900/maintenref/troubleshooting/troubleshooting\_0224.html)”。 |
| key | 输入 | 预定义的参数。 每个错误码支持的参数可查看error\_code.json文件中的Arglist字段。 |
| value | 输入 | 参数key中参数对应的实际值。 这些实际值会替换error\_code.json文件中ErrMessage字段的占位符，得到最终的错误码信息。 |


#### 返回值

- 0：成功。
- -1：失败。
