blob: 6dc848a74e5d4b59f273c0a4adaa3fbf8c027f50 [file] [log] [blame]
using System;
using System.Data.Common;
namespace Apache.IoTDB.Data
{
/// <summary>
/// Represents a IoTDB error.
/// </summary>
public class IoTDBException : DbException
{
IoTDBErrorResult _IoTDBError;
public IoTDBException(IoTDBErrorResult IoTDBError) : base(IoTDBError.Error, null)
{
_IoTDBError = IoTDBError;
base.HResult = _IoTDBError.Code;
}
public IoTDBException(IoTDBErrorResult IoTDBError, Exception ex) : base(IoTDBError.Error, ex)
{
_IoTDBError = IoTDBError;
base.HResult = _IoTDBError.Code;
}
public override string Message => _IoTDBError?.Error;
public override int ErrorCode => (int) _IoTDBError?.Code;
/// <summary>
/// Throws an exception with a specific IoTDB error code value.
/// </summary>
/// <param name="rc">The IoTDB error code corresponding to the desired exception.</param>
/// <param name="db">A handle to database connection.</param>
/// <remarks>
/// No exception is thrown for non-error result codes.
/// </remarks>
public static void ThrowExceptionForRC(string _commandText, IoTDBErrorResult IoTDBError)
{
var te = new IoTDBException(IoTDBError);
te.Data.Add("commandText", _commandText);
throw te;
}
public static void ThrowExceptionForRC( IoTDBErrorResult IoTDBError)
{
var te = new IoTDBException(IoTDBError);
throw te;
}
public static void ThrowExceptionForRC(IntPtr _IoTDB)
{
var te = new IoTDBException(new IoTDBErrorResult() { });
throw te;
}
public static void ThrowExceptionForRC(int code, string message, Exception ex)
{
var te = new IoTDBException(new IoTDBErrorResult() { Code = code, Error = message }, ex);
throw te;
}
public static void ThrowExceptionForRC(int code, string message)
{
var te = new IoTDBException(new IoTDBErrorResult() { Code = code, Error = message });
throw te;
}
}
}