ExceptionBase.cs 1.9 KB

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