在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
}
这是由于在try
和catch
块中都返回,catch块之后的代码将永远不会有机会执行。您可以将try块中的return移到UpdateCommentStatus
调用之后,或者将UpdateCommentStatus
移到try
块中的return语句之前。
如果执行成功,可以返回空字符串,如果执行错误,可以返回异常消息。您可以考虑以下选项来返回错误。
- 设置返回类型为bool并抛出异常。
- 返回bool值,并使用out参数传递错误。