ExceptionBase.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. using System;
  2. namespace SKMC.Api.Common.Exceptions
  3. {
  4. /// <summary>
  5. /// 基础异常模型
  6. /// </summary>
  7. public class ExceptionBase : Exception
  8. {
  9. /// <summary>
  10. /// 内部异常类型
  11. /// </summary>
  12. public int Type { get; set; }
  13. /// <summary>
  14. /// 异常码
  15. /// </summary>
  16. public string Code { get; set; }
  17. /// <summary>
  18. /// 异常级别
  19. /// 0: 不影响运行的告警
  20. /// 1: 影响不大, 可暂时忽略
  21. /// 2: 影响较大, 需设备告警并解决完毕后才可继续
  22. /// 4: 影响非常大, 可能伤人或伤设备, 设备告警时系统会自动退出运行
  23. /// </summary>
  24. public short Level { get; set; }
  25. /// <summary>
  26. /// 问题点
  27. /// </summary>
  28. public string Detail { get; set; }
  29. /// <summary>
  30. /// 异常说明及建议
  31. /// </summary>
  32. public string Tips { get; set; }
  33. /// <summary>
  34. /// 异常时的站点Id
  35. /// </summary>
  36. public int StationId { get; set; }
  37. /// <summary>
  38. /// 发生时间
  39. /// </summary>
  40. public DateTime EncounterTime { get; set; }
  41. /// <summary>
  42. /// 重试动作, 完成重试后需要再次验证
  43. /// </summary>
  44. public Func<bool> RetryAction { get; set; }
  45. /// <summary>
  46. /// 忽略动作
  47. /// </summary>
  48. public Action IgnoreAction { get; set; }
  49. /// <summary>
  50. /// 放弃/退出动作
  51. /// </summary>
  52. public Action AbortAction { get; set; }
  53. public override string ToString()
  54. {
  55. return $"Code: [{Code}], Type: [{Type}], Level: {Level}, Detail: {Detail}, Message: {Message}, Source: {Source}";
  56. }
  57. }
  58. }