//using BroCComn.PubSub; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using static Bro.Common.Helper.EnumHelper; namespace Bro.Common.Helper { public class ProcessException : Exception { public static Action OnExceptionNotice; //PubSubCenter pubSub = PubSubCenter.GetInstance(); /// /// 站点编码 /// public string StationId { get; set; } /// /// 工位索引 /// public int PositionIndex { get; set; } /// /// 原生异常 /// public Exception OriginalException { get; set; } /// /// 异常编码 /// public string ErrorCode { get; set; } public ProcessException() { } public ProcessException(Exception ex) { OriginalException = ex; ExceptionNotice(); } //public ProcessException(string stationCode, int positionIndex) //{ // StationId = stationCode; // PositionIndex = positionIndex; //} public ProcessException(string error, Exception ex = null) : base(error, ex) { ErrorCode = error; OriginalException = ex; ExceptionNotice(); } //public ProcessException(string stationId, int positionIndex, string error, Exception ex) //{ // StationId = stationId; // PositionIndex = positionIndex; // ErrorCode = error; // OriginalException = ex; // ExceptionNotice(); //} public void ExceptionNotice() { //pubSub.Publish(PubTag.ExceptionUpdate.ToString(), ErrorCode, OriginalException, true); OnExceptionNotice?.Invoke(DateTime.Now, ErrorCode, OriginalException?.GetExceptionMessage()); } } public class Level3Exception : ProcessException { public Level3Exception() : base() { } public Level3Exception(string error, Exception ex) : base(error, ex) { } } /// /// 来料检测异常 /// public class IncomingMaterialException : ProcessException { public IncomingMaterialException() : base() { } public IncomingMaterialException(string error, Exception ex) : base(error, ex) { } } public class BarcodeScanFailureException : ProcessException { public BarcodeScanFailureException() : base() { } public BarcodeScanFailureException(string msg, Exception ex) : base(msg, ex) { } } }