/// <summary> /// Throw exception from error handle and error code. /// </summary> /// <param name="errorCode">error code</param> /// <exception cref="ArgumentOutOfRangeException">argument range exception</exception> /// <exception cref="ArgumentException">argument exception</exception> /// <exception cref="InsufficientMemoryException">memory full exception</exception> /// <exception cref="InvalidOperationException">illegal exception</exception> public void ThrowError(CfdErrorCode errorCode) { if ((errorCode == CfdErrorCode.Success) || disposed) { return; } string errorMessage; var ret = CCommon.CfdGetLastErrorMessage(handle, out IntPtr messageAddress); if (ret == CfdErrorCode.Success) { string message = CCommon.ConvertToString(messageAddress); errorMessage = $"CFD error[{errorCode}] message:{message}"; } else { errorMessage = $"CFD error[{errorCode}]"; } CfdCommon.ThrowError(errorCode, errorMessage); }