我试图在我的代码中为方法返回错误消息,但我无法找到正确的返回对象,我在互联网上搜索但没有成功找到答案。 以下是代码段:
public ArrayList getBeneficiaryID(string UserID)
{
try
{
//long Beneficiary_ID = 0;
//string BeneficiaryID = "";
ArrayList BeneficiaryArray = new ArrayList();
// Open connection to the database
string strConn = System.Configuration.ConfigurationManager.ConnectionStrings["Databasebcfintec_alice"].ConnectionString;
aConn = new SqlConnection(strConn);
aConn.Open();
// Set up a command with the given query and associate
// this with the current connection.
string sql = "Select BeneficiaryID from Beneficiary where user_id = '" + UserID + "'";
cmd = new SqlCommand(sql);
cmd.Connection = aConn;
// Execute the query
odtr = cmd.ExecuteReader();
while (odtr.Read())
{
BeneficiaryArray.Add(odtr["BeneficiaryID"]);
//User_ID = (long)(odtr["user_id"]);
//UserID = User_ID.ToString();
}
odtr.Close();
return BeneficiaryArray;
}
catch (Exception ex)
{
Console.WriteLine("Exception: " + ex.ToString());
//return ex.ToString();
return;
}
}
错误讯息:
“需要可转换为arraylist的类型的对象”
我尝试的另一种方法是使用以下代码: return ex.ToString();
但它提供了以下错误消息:
“无法将类型'string'隐式转换为 'System.Collections.ArrayList'
答案 0 :(得分:1)
您可以放return null;
或return new ArrayList();
因为看起来你并不关心你将会遇到什么。您已有控制台日志。
答案 1 :(得分:1)
问题是你必须返回一个对象。你无法做到
return;
因为你没有返回任何东西。您也无法返回字符串,因为它无法转换为ArrayList。
但是,您可以返回null,这听起来就像您想要的那样。
答案 2 :(得分:0)
在catch部分,你应该抛出异常。
public ArrayList MethodName(string UserID)
{
try
{
//write your code
}
catch (Exception )
{
//log the exception
throw ;
}
}