linq 其中来自Try Catch内部的错误

e0bqpujr  于 2023-01-15  发布在  其他
关注(0)|答案(1)|浏览(124)

我在try/catch中做了5件事。如果有错误,我怎么知道错误来自哪个函数。所以在Console.WriteLine("Invalid operation");行,我希望它显示错误是哪个函数,以便调试。
我试图避免在主OnGet()方法中使用5个不同的try/catch。我想把try/catch放在每个子方法中,但我返回IQueryable,所以我无法返回字符串类型的错误。即使这样,我最终还是会有5个不同的if语句来检查OnGet()中的错误
你们是怎么处理这种事的?

public async Task<IActionResult> OnGetAsync(int p = 1, int s = 20)
    {
        try
        {
            // get all Data 
            IQueryable<MY_Model> Query = await _services.Get_All_CoursesTaken();
            // Add Filters
            Query = AddFilters(Query );
            // Add Sorting
            Query = AddSorting(Query );
            // Add Paging
            Query = AddPaging(p, s, Query );
            //Display Data
            My_List= await Query.AsNoTracking().ToListAsync();
        }
        catch (InvalidOperationException)
        {
            Console.WriteLine("Invalid operation");
        }
  return Page();
}

 private IQueryable<MY_Model> AddFilters(IQueryable<MY_Model> Query)
    {
       //some code 
    }

 private IQueryable<MY_Model> AddSorting(IQueryable<MY_Model> Query)
    {
       //some code 
    }

 private IQueryable<MY_Model> AddPaging(int p, int s, IQueryable<MY_Model> Query)
    {
       //some code 
    }
smdncfj3

smdncfj31#

也许你的解决方案是:
元组
可以在方法中返回IQueryable和String作为返回类型。

private Tuple<IQueryable<MY_Model>,string> AddFilters(IQueryable<MY_Model> Query)

相关问题