2017-12-15 7 views
-1

Ich möchte Fehler im Zusammenhang mit der Funktion in meinem Code unten, wenn try Block fehlschlägt.Throw-Fehlermeldung, wenn Code nicht funktioniert in Catch-Block asp.net

hier ist mein Code

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" 
} 

Wie soll ich diese

Update in asp.net tun

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

@mjwills: ist es richtig 'catch (Exception ex) { werfen neue Ausnahme (strFiber.Split (' | ') [0]); } ' – BNN

+0

@mjwills: können Sie als Antwort wie, wie überprüfe ich – BNN

+0

@mjwills: was soll ich dann tun? – BNN

Antwort

1

Ein Ansatz zu berücksichtigen:

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}"); 
} 

Der Schlüssel wird erklärt strFiberaußerhalb des try..catch. Und auch vorsichtig mit strFiber innerhalb der catch Block (falls es noch null ist).

+0

kann ich ohne 'throw' schreiben? – BNN

+0

Ihre Frage ** explizit ** besagt, dass Sie _want_ werfen möchten. Aber nein, du brauchst nicht zu werfen. Ändere meine 'throw' Zeile auf was immer du willst._ – mjwills

0

Los geht's: dieser Block in Fang Put:

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

Wenn Sie Fließtext einfügen möchten, verwenden Sie ein ViewResult, stellen Sie Response.StatusCode und die Ansicht ein, die den Textkörper enthält. Sie können auch die Ausnahme in der Protokolldatei protokollieren, und Sie können es sehen. -Code wird wie in catch-Block somethig:

logger.Error(ex.Message); 
+0

was der obige Code mir zeigen wird? – BNN