2013-12-19 5 views
2

Что происходит, когда исключение возникает на блоке Try-Finally (без catch), а еще одно исключение возникает на участке Finally?Исключение из блока «Наконец-то на Try-finally»

Пример:

Dim aux As String 

Try 
    Try 
     aux.Split("."c) 
    Finally 
     aux = File.ReadAllText("") 
    End Try 
Catch ex As Exception 
    Console.WriteLine(ex) 
End Try 
+1

Как правило, это плохая идея написать код, который даже имеет удаленную возможность выбросить исключение в секции Catch или finally. Может создавать затруднительные отладки ошибок. –

+0

@RobertBeaubien Его следует избегать, но, конечно, лучше знать, что произойдет. – SysDragon

ответ

3

Последнее брошено исключение пойманной.

В этом случае ArgumentException от ReadAllText() на блоке Finally. Игнорируется исключение первого исключения.