Я использую Apache Ignite 2.7.5 в качестве сервера и тонкого клиента в ядре .Net.
Когда я выполняю операции, связанные с установкой, загрузкой и загрузкой кэша и т. Д., Ядро приложения автоматически выходит из строя.
Итак, я хочу обработать исключение внутри для конкретного исключения цикла, например, IgniteCheckedException
, BinaryInvalidTypeException
, ClassNotFoundException
и т. Д., Затем бросить из блока catch и выйти из цикла, иначе продолжить для итерации цикла, если только блок Exception.
public async void loadData(string configPath,List<JObject> dataList)
{
using (var ldr = _ignite.GetDataStreamer<string, Employee>(cacheName))
{
foreach (var item in parsedObjectList)
{
try
{
JObject keyObj = new JObject();
foreach (var keyName in keyArray)
{
keyObj[keyName.ToString()] = item[keyName.ToString()];
}
var serializerSettings = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore };
JsonConvert.PopulateObject(item.ToString(), emp, serializerSettings);
string json = JsonConvert.SerializeObject(keyObj, Formatting.None);
string base64EncodedKey = Convert.ToBase64String(Encoding.UTF8.GetBytes(json));
await ldr.AddData(base64EncodedKey, emp);
}
catch (IgniteCheckedException ex)//how to handle here
{
throw;
}
catch (BinaryInvalidTypeException ex)//how to handle here
{
throw;
}
catch (ClassNotFoundException ex)//how to handle here
{
throw;
}
catch (Exception ex)
{
//continue for loop if data parsing ,some normal exception
Console.WriteLine(ex);
}
}
}
}
Кто-нибудь подскажет мне, как этого добиться в приложении .net core c #.