如果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");
}
}
答案 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);