using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CoreAgent.ProtocolClient.Context.UeStateManager
{
///
/// UeIdentifierManager 相关异常基类
///
public abstract class UeIdentifierManagerException : Exception
{
protected UeIdentifierManagerException(string message) : base(message) { }
protected UeIdentifierManagerException(string message, Exception innerException) : base(message, innerException) { }
}
///
/// 标识符格式异常
///
public class IdentifierFormatException : UeIdentifierManagerException
{
public string Identifier { get; }
public string ExpectedFormat { get; }
public IdentifierFormatException(string identifier, string expectedFormat, string message = null)
: base(message ?? $"标识符 '{identifier}' 格式无效,期望格式: {expectedFormat}")
{
Identifier = identifier;
ExpectedFormat = expectedFormat;
}
}
///
/// UE信息异常
///
public class UeInfoException : UeIdentifierManagerException
{
public int UeId { get; }
public UeInfoException(int ueId, string message)
: base(message)
{
UeId = ueId;
}
}
///
/// 映射关系异常
///
public class MappingException : UeIdentifierManagerException
{
public string MappingType { get; }
public object Key { get; }
public MappingException(string mappingType, object key, string message)
: base(message)
{
MappingType = mappingType;
Key = key;
}
}
///
/// 缓存异常
///
public class CacheException : UeIdentifierManagerException
{
public string CacheType { get; }
public CacheException(string cacheType, string message)
: base(message)
{
CacheType = cacheType;
}
public CacheException(string cacheType, string message, Exception innerException)
: base(message, innerException)
{
CacheType = cacheType;
}
}
///
/// 解析异常
///
public class ParsingException : UeIdentifierManagerException
{
public string ParsingType { get; }
public string Input { get; }
public ParsingException(string parsingType, string input, string message)
: base(message)
{
ParsingType = parsingType;
Input = input;
}
public ParsingException(string parsingType, string input, string message, Exception innerException)
: base(message, innerException)
{
ParsingType = parsingType;
Input = input;
}
}
///
/// 通用UE标识符管理器异常
///
public class GeneralUeIdentifierManagerException : UeIdentifierManagerException
{
public string Operation { get; }
public GeneralUeIdentifierManagerException(string operation, string message)
: base(message)
{
Operation = operation;
}
public GeneralUeIdentifierManagerException(string operation, string message, Exception innerException)
: base(message, innerException)
{
Operation = operation;
}
}
}