【问题标题】:Why I don't see error exception on the client?为什么我在客户端上看不到错误异常?
【发布时间】:2020-09-28 23:21:11
【问题描述】:

我有这个动作方法:

    public ActionResult SavePoint(PointRequest point)
    {
        //some logic
        
        throw new System.ArgumentException("Error, no point found");
    }
    
    and this ajax:
    
    function saveFeature(feature, callback, error) {
    $.ajax({
        url: window.homeUrl + "Feature/SavePoint",
        type: "GET",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        data: feature,
        success: callback,
        error: function (xhr, ajaxOptions, thrownError) {
                alert(thrownError);     
            }
        });
    }

    

在保存功能功能中,我想提醒异常文本:'错误,找不到点'。

但是 throwedError 是空的,知道为什么在 throwedError 中我没有看到错误消息吗?

【问题讨论】:

  • 在服务器中抛出异常是在服务器上抛出,而不是在客户端(浏览器)
  • 一般来说,答案是它依赖于 ASP.NET、IIS\Owin(本质上是您的 Web 服务器堆栈)的配置。你是如何运行你的应用程序的?你在做什么?你使用什么模块来处理未处理的异常?

标签: javascript c# ajax model-view-controller


【解决方案1】:

Jaromanda X 和 Brett Caswell 在他们的 cmets 中回答了“为什么”。但你可以这样做:

    public ActionResult SavePoint(PointRequest point)
    {
        try
        {
            //some logic
        }
        catch (Exception ex)
        {
            return BadRequest("Error, no point found");
        }
    }

或者,向用户包含实际错误:

public ActionResult SavePoint(PointRequest point)
{
    try
    {
        //some logic
    }
    catch (Exception ex)
    {
        return BadRequest($"Error, no point found. Message: {ex.InnerException.Message}");
    }
}

【讨论】:

  • 这样很有帮助;这是一种解决方法,不能回答问题。
  • 虽然它没有回答问题,但它显示了一种有效的方法 - 这不是一种解决方法。
  • 对,jdoer ..(要清楚,我不会\wouldn't downvote建议或包含此类信息)..但OP基本上提供了一个未处理异常的场景,并且询问为什么响应不包含异常消息,您的回答建议处理它。您应该解决该查询(问题)并提供此查询(您处理异常的示例)。
  • 另外,你是对的。 “解决方法”不是我使用的正确术语。我最初认为这是一个伪代码示例,以方便提出问题,但解决“想要”\结果可能是这里的真正意图。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-06
  • 1970-01-01
  • 1970-01-01
  • 2018-02-10
  • 1970-01-01
  • 1970-01-01
  • 2020-12-30
相关资源
最近更新 更多