在c#中检测到不可达的函数代码

本文关键字:函数 代码 检测 | 更新日期: 2023-09-27 18:05:36

在下面的示例代码中,我得到'检测到不可达代码'错误。请帮我解决这个问题,它是否与try和catch语句有关?UpdateCommentStatus函数在同一个cs文件中:

public string insertEmail(string pstrEmailFrom, string pstrEmailTo, string pstrEmailSubject, string pstrEmailBody, string pstrBRID, string pstrTicketID, int include_Attachment)
    {
        // Include Attachment is for keep track of only first email notification will contain attachment.
        // This is done to conserve bandwidth and processing. 
        string strSQL;
        string strEmailSubject = pstrEmailSubject.Replace("'", "''");
        string strEmailBody = pstrEmailBody.Replace("'", "''");
        strSQL = "INSERT INTO CRM_EMAIL(email_to,email_from,email_subject,email_body,created_date,";
        strSQL = strSQL + " br_id,notes,status,ticket_id, INCLUDE_ATTACHMENT,SEG_ID) VALUES ";
        strSQL = strSQL + "('" + pstrEmailFrom.Replace("'", "") + "','" + pstrEmailTo.Replace("'", "") + "','" + strEmailSubject + "', ";
        strSQL = strSQL + "'" + strEmailBody + "',NOW(), ";
        strSQL = strSQL + "'" + pstrBRID + "','','N', '" + pstrTicketID + "', " + include_Attachment + ",'" + mag.getSegID() + "')";
        mag.WriteToNormalLogFile("insertEmail()  strSQL:" + strSQL);
        try
        {
            objDBinterface.strConn = mag.ConnStr();
            objDBinterface.ExecSQL(strSQL);
            UpdateCommentStatus(pstrTicketID);
            return "";
        }
        catch (Exception ex)
        {
            mag.WriteToLogFile("insertEmail : " + ex.ToString());
            return ex.ToString();
        }
        UpdateCommentStatus(pstrTicketID); <<-- HERE
    }

在c#中检测到不可达的函数代码

这是由于在trycatch块中都返回,catch块之后的代码将永远不会有机会执行。您可以将try块中的return移到UpdateCommentStatus调用之后,或者将UpdateCommentStatus移到try块中的return语句之前。

如果执行成功,可以返回空字符串,如果执行错误,可以返回异常消息。您可以考虑以下选项来返回错误。

  • 设置返回类型为bool并抛出异常。
  • 返回bool值,并使用out参数传递错误。