Поиск

Повторная передача исключения

Случается, что метод, уловивший исключение и сделавший все, что он может в своем контексте, затем повторно передает (rethrow) исключение выше. Это легко реализовать с помощью ключевого слова throw:

using System;
class RethrowApp {
static public void MainQ
{
Rethrow rethrow = new RethrowO;
try {
rethrow.Foo(); }
catch(Exception e) {
Console.WriteLine(e.Message); } }
public void Foo() {
try {
Bar(); }
catch(Exception) {
// Обработка ошибки, throw; > }
public void Bar() {
throw new Exception("Передано от Rethrow.Bar"); }
}

В этом примере Main вызывает Foo, который вызывает Bar. Bar передает исключение, которое улавливает Foo. После этого Foo неким образом обрабатывает исключение и повторно передает его наверх методу Main с помощью ключевого слова throw.