Всплывающие ошибки.

Ay-y

Есть мульти уровневая программа база данных, уровень вызова из базы, уровень бизнес манипулаций, класс вызова. Как поднять неожиданную ошибку из базы данных, например, до самого верха, для информации пользователя, ничего не надо делать просто bubble up.По какой-то причине если ошибка случилась, например в SP, то она возвращается как XML с ошибкой, и в предидущем уровне ошибки не выдаёт продолжает обрабатывать другие процедуры.
In Windows Form

	Bt_Click
		{
			try
				{
					getFromBC();//Class Business Layer 
				}
			catch (Exception ex)
 			{
 			//Handle Error;
 			}
		}

In Class Business Layer 


	public string getFromBC()
		{
			try
				{
					string str1 = callFunction1();//Class Business Layer 
					string str1 = callFunction2();//Class Business Layer 
					string str1 = callFunction3();//Class Business Layer 

				}
			catch (Exception ex)
 			{
 			//Do nothing, move it to layer up;
 			}
		}

	private void callFunction1
		{
			try
				{
					callForProcedure1();//Class Data Layer
				}
			catch (Exception ex)
 			{
 			//Do nothing, move it to layer up;
 			}
		}

In Class Data Layer 

	private string callFunction1
		{
			try
				{
					callSP1();
				}
			catch (Exception ex)
 			{
 			Throw ex;
 			}
		}
Что-то в этом духе.То-есть надо что-бы процесс обрывался после callFunction1, а он продолжает опбрабатывать callFunction2 и callFunction3, несмотря, что callFunction1 из уровня данных выбрасывает ошибку.Если есть рабочие примеры то будет очень здорово.
1 ответ

Ay-y

Исключения и обработка исключений (Руководство по программированию в C#)
Не перехватывайте исключение, если его нельзя обработать, и оставьте приложение в известном состоянии. При перехвате System.Exception вновь инициируйте это исключение с использованием ключевого слова throw в конце блока catch.