40 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C#
		
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C#
		
	
	
using IRaCIS.Core.Infrastructure.Extention;
 | 
						||
using Microsoft.AspNetCore.Mvc;
 | 
						||
using Panda.DynamicWebApi.Attributes;
 | 
						||
 | 
						||
namespace EasyCaching.Demo.Interceptors.Controllers
 | 
						||
{
 | 
						||
 | 
						||
    [NonDynamicWebApi]
 | 
						||
    public class ErrorController : ControllerBase
 | 
						||
    {
 | 
						||
        /// <summary>
 | 
						||
        /// 主要处理 前端404等错误  全局业务异常已统一处理了,非业务错误会来到这里
 | 
						||
        /// </summary>
 | 
						||
        /// <param name="code"></param>
 | 
						||
        /// <returns></returns>
 | 
						||
        [Route("error/{code:int}")]
 | 
						||
        [HttpGet]
 | 
						||
        public IResponseOutput Error(int code)
 | 
						||
        {
 | 
						||
 | 
						||
            if (code < 500)
 | 
						||
            {
 | 
						||
                //LogDashboard 要求返回码必须是401不能覆盖,否则 认证有问题
 | 
						||
                if (code == 401)
 | 
						||
                {
 | 
						||
                    ControllerContext.HttpContext.Response.StatusCode = 401;
 | 
						||
                }
 | 
						||
 | 
						||
                return ResponseOutput.NotOk($"Client error, actual request error status code({code})");
 | 
						||
            }
 | 
						||
            else
 | 
						||
            {
 | 
						||
 | 
						||
                return ResponseOutput.NotOk($"Server error , actual request error status code({code})");
 | 
						||
            }
 | 
						||
 | 
						||
        }
 | 
						||
    }
 | 
						||
}
 |