src/NetCoreApp/Attributes/BaseExceptionAttribute.cs

(开头部分) 2KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
using Microsoft.Extensions.Configuration;
using System;
using YL.Utils.Json;
using YL.Utils.Log;

namespace YL.NetCore.Attributes
{
    public class BaseExceptionAttribute : ExceptionFilterAttribute
    {
        private readonly ILogUtil _logUtil;
        private readonly IConfiguration _configuration;

        public BaseExceptionAttribute(ILogUtil logUtil, IConfiguration configuration)
        {
            _logUtil = logUtil;
            _configuration = configuration;
        }

        public override void OnException(ExceptionContext context)
        {
            if (!context.ExceptionHandled)
            {
                var header = context.HttpContext.Request.Headers["promise"];
                //context.Exception.WriteToFile();
                var data = context.RouteData;
                var areaName = data.Values["area"];
                var controllerName = data.Values["controller"];
                var actionName = data.Values["action"];
                var dt = context.Exception;
                //错误日志
                string flag = _configuration["Log:errorlog"];
                if (flag.Equals("true", StringComparison.OrdinalIgnoreCase))
                {
                    _logUtil.Debug(dt, $"{areaName}/{controllerName}/{actionName}");
                }
                //Task.Factory.StartNew(() =>
                //{
                //    _logUtil.Debug(dt, dt.Message);
                //});
                //context.HttpContext.Response.StatusCode = 404;
                //context.HttpContext.Response.Redirect("/Home/Error");
                //context.HttpContext.Response.Redirect("404.html");
                if (header == "promise")
                {
                    context.Result = new ContentResult()
                    {
                        //Content = (false, "异常").JilToJson()
                        Content = (false, dt.Message).ToJsonL()
                    };
                }
                else if (context.HttpContext.Request.Headers["fileExcel"] == "fileExcel")
                {
                    context.Result = new ContentResult()
                    {
                        Content = (false, "文件可能已损坏").ToJsonL()
                    };
                }
                else
后面还有 9 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。