65 lines
1.6 KiB
C#
65 lines
1.6 KiB
C#
using System;
|
||
using static DH.Commons.Enums.EnumHelper;
|
||
|
||
|
||
namespace DH.Commons.Helper
|
||
{
|
||
public enum ExceptionLevel
|
||
{
|
||
Info = 0,
|
||
Warning = 1,
|
||
Fatal = 2,
|
||
}
|
||
|
||
//public delegate void OnProcessExceptionRaisedDelegate(DateTime dt, ProcessException ex);
|
||
//[Serializable]
|
||
public class ProcessException : Exception
|
||
{
|
||
public ExceptionLevel Level { get; set; } = ExceptionLevel.Warning;
|
||
|
||
public ProcessException()
|
||
{
|
||
}
|
||
|
||
public ProcessException(Exception ex, ExceptionLevel lvl = ExceptionLevel.Warning) : base(ex.Message, ex)
|
||
{
|
||
Level = lvl;
|
||
ExceptionNotice();
|
||
}
|
||
|
||
public ProcessException(string error, Exception ex = null, ExceptionLevel lvl = ExceptionLevel.Warning) : base(error, ex)
|
||
{
|
||
Level = lvl;
|
||
ExceptionNotice();
|
||
}
|
||
|
||
public void ExceptionNotice()
|
||
{
|
||
//OnProcessExceptionRaised?.Invoke(DateTime.Now, this);
|
||
}
|
||
}
|
||
|
||
public static class ExceptionHelper
|
||
{
|
||
public static LogLevel LogLevel = LogLevel.Information;
|
||
public static string GetExceptionMessage(this Exception ex)
|
||
{
|
||
string msg = "异常信息:" + ex.Message;
|
||
if (ex.InnerException != null)
|
||
{
|
||
msg += ";\t内部异常信息:" + ex.InnerException.GetExceptionMessage();
|
||
}
|
||
|
||
if (LogLevel <= LogLevel.Assist)
|
||
{
|
||
msg += (";\r\n\t\tStackTrace:" + ex.StackTrace);
|
||
}
|
||
return msg;
|
||
}
|
||
}
|
||
|
||
public class AuthorityException : ProcessException
|
||
{
|
||
}
|
||
}
|