C#自定義異常 統一異常處理

eedc發表於2018-07-05

異常類

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace EasErpQuerySys.EasApplication
{
    [Serializable]
    public class EasWebServiceException : ApplicationException
    {
        private readonly ExceptionResult _exceptionResult;
        public EasWebServiceException() { }
        public EasWebServiceException(string resultStatus, string resultMsg) : base(resultStatus)
        {
            _exceptionResult = new ExceptionResult { resultMsg = resultMsg, resultStatus = resultStatus };
        }
        public ExceptionResult GetExceptionResult()
        {
            return _exceptionResult;
        }
    }
    public class ExceptionResult
    {
        public string resultStatus { get; set; }
        public string resultMsg { get; set; }
    }
}

觸發類

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace EasErpQuerySys.EasApplication
{
    public class EasAppService : IEasAppService
    {
        public string Test()
        {

            throw new EasWebServiceException("失敗", "失敗了滾蛋");

        }
    }
}

捕獲類

using EasErpQuerySys.EasApplication;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace test
{
    class Program
    {
        static void Main(string[] args)
        {
            IEasAppService easAppService = new EasAppService();


            try
            {
                easAppService.Test();
            }
            catch (EasWebServiceException e)
            {
                var tt = e.GetExceptionResult();
                Console.WriteLine(tt.resultMsg);
                Console.WriteLine(tt.resultStatus);
                Console.ReadLine();
            }
        }
    }
}

輸出結果:

 

相關文章