C # Как возобновить выполнение моего кода после перехвата? - PullRequest
0 голосов
/ 12 октября 2018

Можно ли возобновить выполнение моей программы после первого перехвата, даже если я сгенерировал исключение?

Я сделал пример программы, но в строке, где я добавил исключение к моему List<string> должен выполняться точно после внутреннего и внутреннего внешнего foreach я знаю, что это было бы возможно, если бы я не выбрасывал исключение, но я должен сделать это также.

foreach(var x in x)
{
    try
    {
        List<string> exs = new List<string>();
        foreach(var a in b)
        {
            try
            {
                //...some code
            }
            catch(Exception ex)
            {
                throw ex;
            }
            finally
            {
                //...some code
            }
        }
        exs.Add(ex);
    }
    catch(Exception ex)
    {
        Console.WriteLine(ex);
    }
    finally
    {
        //...some code
    }
}

1 Ответ

0 голосов
/ 12 октября 2018

Не бросайте их, а собирайте и распечатывайте их позже.

List<Exception> exs = new List<Exception>();
try
{

    foreach(var a in b)
    {
        try
        {
            //...some code
        }
        catch(Exception ex)
        {
            exs.Add(ex);
        }
        finally
        {
            //...some code
        }
    }        
}    
catch(Exception e)
{
   Console.WriteLine(e.ToString());
}
finally
{
    //...some code
}
exs.ForEach(ex=> Console.WriteLine(ex.ToString()));
...