Обработка ошибок статического метода в потоке N-уровня Asp.Net - PullRequest
0 голосов
/ 16 февраля 2012

В Asp.Net (формы 4.0, а не MVC) я ищу потоковую безопасную методику для передачи сообщений об ошибках из объекта DAL, который был вызван тем, что служит объектом бизнес-уровня, на страницу Asp.Net.

Мне кажется, что нехорошо (и моя интуиция говорит, что неэффективно, но я могу ошибаться) мне просто выкидывать исключения на всем протяжении цепочки вызовов, чтобы оказаться в ловушке на странице.

В то же время я также не хочу, чтобы мне приходилось создавать экземпляры каждого объекта более низкого уровня, чтобы я мог захватить нестатическое поле сообщения, когда метод экземпляра по какой-то причине блокируется.

На данный момент у меня смешанный подход:

Page_Load(Object sender, EventArgs e){
    //instantiate non-static class, with non-static methods
    MyClass myClass = new MyClass(); 
    if(!myClass.DoSomething()){
       ErrorLabel.Text = myClass.ErrorMessage;
    }
}

и

public Class MyClass{
.......
   public string ErrorMessage{get;set;}
   public bool DoSomething(){
      try{
          MyDalClass.DoSomeDataTricks();
          return true;
      }
      catch (exception ex){
          ErrorMessage = ex.Message;
          return false;
      }
   }
}

и наконец:

public Class MyDalClass{  //non-static class
    ......
    public static void DoSomeDataTricks(){   //static method
       ......
       if(fooBar){
          throw new Exception("Database Error: Cannot Find World Peace.");
       }
    }
 }

Насколько известно выше, Thread-Safe в среде Asp.Net (если вы так не думаете, пожалуйста, скажите мне, почему), но я чувствую, что должен быть лучший путь, особенно на уровне DAL.

Лучшая практика?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...