// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. using System; using System.Collections.Generic; using System.Text; namespace Microsoft.ML.OnnxRuntime { /// /// Enum conresponding to native onnxruntime error codes. Must be in sync with the native API /// internal enum ErrorCode { Ok = 0, Fail = 1, InvalidArgument = 2, NoSuchFile = 3, NoModel = 4, EngineError = 5, RuntimeException = 6, InvalidProtobuf = 7, ModelLoaded = 8, NotImplemented = 9, InvalidGraph = 10, ShapeInferenceNotRegistered = 11, RequirementNotRegistered = 12, } /// /// The Exception that is thrown for errors related ton OnnxRuntime /// public class OnnxRuntimeException: Exception { private static Dictionary errorCodeToString = new Dictionary() { { ErrorCode.Ok, "Ok" }, { ErrorCode.Fail, "Fail" }, { ErrorCode.InvalidArgument, "InvalidArgument"} , { ErrorCode.NoSuchFile, "NoSuchFile" }, { ErrorCode.NoModel, "NoModel" }, { ErrorCode.EngineError, "EngineError" }, { ErrorCode.RuntimeException, "RuntimeException" }, { ErrorCode.InvalidProtobuf, "InvalidProtobuf" }, { ErrorCode.ModelLoaded, "ModelLoaded" }, { ErrorCode.NotImplemented, "NotImplemented" }, { ErrorCode.InvalidGraph, "InvalidGraph" }, { ErrorCode.ShapeInferenceNotRegistered, "ShapeInferenceNotRegistered" }, { ErrorCode.RequirementNotRegistered, "RequirementNotRegistered" }, }; internal OnnxRuntimeException(ErrorCode errorCode, string message) :base("[ErrorCode:" + errorCodeToString[errorCode] + "] " + message) { } } }