如果代码在catch块asp.net中不起作用,则抛出错误消息

时间:2017-12-15 11:59:31

标签: c# asp.net try-catch

如果try阻止失败,我想在下面的代码中抛出与该函数相关的错误。

这是我的代码

try
{
    FiberEngineer ObjFiber = new FiberEngineer();
    string strFiber = ObjFiber.UpdateFiberEngRecord(FiberDataInsertion, myJsonXML);

    if (strFiber.Split('|')[0] == "SUCCESS")
    {
        SendEmail(FiberDataInsertion.MODIFIED_BY, FiberDataInsertion.UMS_GROUP_ASS_TO_ID, FiberDataInsertion.UMS_GROUP_ASS_TO_NAME, FiberDataInsertion.UMS_GROUP_ASS_BY_NAME, FiberDataInsertion.REQUEST_STATUS_TYPE, FiberDataInsertion.PROG_ID); 
    }

    return Json(strFiber, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
   //error message related to this string "strFiber"
}

我应该如何在asp.net中执行此操作

更新

public JsonResult SaveRecordForFiberEng(FiberDataInsertion FiberDataInsertion, string myJsonXML)
    {
        string strFiber = "";
        try
        {
            FiberEngineer ObjFiber = new FiberEngineer();
            strFiber = ObjFiber.UpdateFiberEngRecord(FiberDataInsertion, myJsonXML);

            if (strFiber.Split('|')[0] == "SUCCESS")
            {
                SendEmail(FiberDataInsertion.MODIFIED_BY, FiberDataInsertion.UMS_GROUP_ASS_TO_ID, FiberDataInsertion.UMS_GROUP_ASS_TO_NAME, FiberDataInsertion.UMS_GROUP_ASS_BY_NAME, FiberDataInsertion.REQUEST_STATUS_TYPE, FiberDataInsertion.PROG_ID); 
            }

            return Json(strFiber, JsonRequestBehavior.AllowGet);
        }
        catch (Exception ex)
        {
            new Exception(strFiber.Split('|')[0] + " ERROR| Error ocurred on Approve, Reject & Save Data");
        }
    }

2 个答案:

答案 0 :(得分:1)

需要考虑的一种方法:

string strFiber = null;
try
{
    FiberEngineer ObjFiber = new FiberEngineer();
    strFiber = ObjFiber.UpdateFiberEngRecord(FiberDataInsertion, myJsonXML);

    if (strFiber.Split('|')[0] == "SUCCESS")
    {
        SendEmail(FiberDataInsertion.MODIFIED_BY, FiberDataInsertion.UMS_GROUP_ASS_TO_ID, FiberDataInsertion.UMS_GROUP_ASS_TO_NAME, FiberDataInsertion.UMS_GROUP_ASS_BY_NAME, FiberDataInsertion.REQUEST_STATUS_TYPE, FiberDataInsertion.PROG_ID);
    }

    return Json(strFiber, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
    var fiber = strFiber == null ? null : strFiber.Split('|').FirstOrDefault();
    throw new Exception($"fiber value was {fiber}");
}

关键是声明strFiber之外的try..catch 。并且对strFiber块内的catch保持谨慎(如果它仍然是null)。

答案 1 :(得分:0)

我们走了: 把它放在catch块中:

throw new HttpStatusCodeResult(HttpStatusCode.BadRequest);  // returns 400

如果要包含正文文本,请使用ViewResult,设置Response.StatusCode和包含正文的视图。 您还可以在日志文件中记录异常,您可以看到它。 代码将像catch块一样:

logger.Error(ex.Message);