Skip to content

ErrorCode ​

ErrorCode 是一个枚举类型,表示 QPilot OS 操作返回的错误代码。这些代码指示在量子任务提交、执行或结果检索过程中发生的故障类型。

概述 ​

错误代码有助于诊断与 QPilot OS 平台交互时的问题。每个代码对应一类特定的故障,从数据库错误到芯片离线等。

枚举值 ​

成功 ​

取值描述
NO_ERROR_FOUND未发生错误;操作成功完成

数据和格式错误 ​

取值描述
DATABASE_ERROR数据库操作失败
ORIGINIR_ERROROriginIR 程序字符串无效或格式错误
JSON_FIELD_ERROR必需的 JSON 字段缺失或包含无效值
ERR_PARAMETER请求中的参数无效或缺失
ERR_TASK_CONFIG任务配置无效

后端和计算错误 ​

取值描述
BACKEND_CALC_ERROR后端在计算过程中遇到错误
ERR_UNSUPPORT_BACKEND_TYPE不支持指定的后端类型
ERR_QVM_INIT_FAILED量子虚拟机初始化失败
ERR_QCOMPILER_FAILED量子编译器遇到错误
CLUSTER_SIMULATE_CALC_ERR集群模拟计算失败
CLUSTER_BASE基础集群错误

资源限制错误 ​

取值描述
ERR_TASK_BUF_OVERFLOW任务缓冲区溢出;排队任务过多
EXCEED_MAX_QUBIT程序超出芯片支持的最大量子比特数
EXCEED_MAX_CLOCK程序超出允许的最大线路深度(时钟周期)
ERR_SUB_GRAPH_OUT_OF_RANGE子图规范超出有效范围
ERR_TASK_STATUS_BUF_OVERFLOW任务状态缓冲区溢出
ERR_QPROG_LENGTH量子程序超出允许的最大长度

线路和编译错误 ​

取值描述
ERR_PRE_ESTIMATE线路资源预估失败
ERR_MATE_GATE_CONFIGMate 门配置错误
ERR_FIDELITY_MATRIX保真度矩阵计算错误
ERR_QST_PROG无效的量子态层析程序
ERR_EMPTY_PROG提交的量子程序为空
ERR_QUBIT_SIZE无效的量子比特大小规范
ERR_QUBIT_TOPO量子比特拓扑错误
ERR_QUANTUM_CHIP_PROG量子芯片程序错误
ERR_REPEAT_MEASURE重复测量配置错误
ERR_OPERATOR_DB算符数据库错误

任务管理错误 ​

取值描述
ERR_UNKNOW_TASK_TYPE未知或不支持的任务类型
ERR_NOT_FOUND_APP_ID未找到指定的应用 ID
ERR_NOT_FOUND_TASK_ID未找到指定的任务 ID
ERR_PARSER_SUB_TASK_RESULT解析子任务结果失败
ERR_TASK_TERMINATED任务在完成前被终止

网络和连接错误 ​

取值描述
ERR_SYS_CALL_TIME_OUT系统调用超时
ERR_INVALID_URL提供的 URL 无效
ERR_BACKEND_CHIP_TASK_SOCKET_WRONG后端芯片任务套接字错误
ERR_TCP_INIT_FATLTTCP 初始化失败
ERR_TCP_SERVER_HALTTCP 服务器已停止或无法访问

芯片可用性 ​

取值描述
ERR_CHIP_OFFLINE目标量子芯片当前处于离线状态
ERR_SCHEDULE_CHIP_TOPOLOGY_SUPPORTED调度器不支持该芯片拓扑

通用 ​

取值描述
UNDEFINED_ERROR发生了未定义或无法识别的错误

示例 ​

以下示例演示如何使用 ErrorCode 枚举检查错误代码。 ErrorCode 成员不能直接与整数比较;请使用 .value 属性进行整数比较。

python
from pyqpanda3.pilot_service.pilot_service import ErrorCode

# Simulate error codes as returned by service.query_result()
test_cases = [
    (0, ""),          # NO_ERROR_FOUND
    (35, "Offline"),  # ERR_CHIP_OFFLINE
    (6, ""),          # EXCEED_MAX_QUBIT
    (31, "Timeout"),  # ERR_TASK_TERMINATED
    (99, "Unknown"),  # Unrecognized error
]

for err_code, err_info in test_cases:
    if err_code == ErrorCode.NO_ERROR_FOUND.value:
        print("Operation succeeded")
    elif err_code == ErrorCode.ERR_CHIP_OFFLINE.value:
        print("The chip is offline; try a different backend")
    elif err_code == ErrorCode.EXCEED_MAX_QUBIT.value:
        print("Program uses too many qubits for this chip")
    elif err_code == ErrorCode.ERR_TASK_TERMINATED.value:
        print("Task was terminated")
    else:
        print(f"Error {err_code}: {err_info}")

运行上述代码将输出:

Operation succeeded
The chip is offline; try a different backend
Program uses too many qubits for this chip
Task was terminated
Error 99: Unknown

使用 QPilotService.query_result() 时,返回的字典中 errCode 键包含整数类型的错误代码:

python
from pyqpanda3.pilot_service import QPilotService
from pyqpanda3.pilot_service.pilot_service import ErrorCode

# service = QPilotService(url="https://qpilot.originquantum.cn", api_key="key")
# task_id = service.async_run(prog, shot=1000)
# result = service.query_result(task_id)
# err_code = result["errCode"]
# err_info = result.get("errInfo", "")

另见 ​

Released under the MIT License.