title: Catching errors from new T()
body: <p>I normally use this pattern for lazy loading from a base screen class:</p>
  
  <pre><code>public class BaseScreen
  {
      public void Goto&lt;T&gt;(T t) where T : BaseScreen, new(){
          if (t == null)
              t = new T();
  
          NavigatonController.PushViewController(t,true);
      }
  }
  </code></pre>
  
  <p>But I have run into a situation that I don't like. When an exception is thrown in the process of constructing t, that exception is ignored an instead you get an excepton at <code>t = new T()</code>. It says something like: <code>Exception has been thrown by the target of an invocation</code>. But it doesn't give any hint of where the real exception happened. I have tried catching it but still found no info. Of course, eventually I found it but I would like to know if there is a way to catch these errors directly. I throw exceptions to help me know if I have done something wrong but it is pointless if the only exception I am going to see is the one I mentioned before. Therefore, can I do something? or is this just a poor pattern?</p>