Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从新T()捕获错误_C#_Generics_Xamarin.ios - Fatal编程技术网

C# 从新T()捕获错误

C# 从新T()捕获错误,c#,generics,xamarin.ios,C#,Generics,Xamarin.ios,我通常使用此模式从基本屏幕类进行延迟加载: public class BaseScreen { public void Goto<T>(T t) where T : BaseScreen, new(){ if (t == null) t = new T(); NavigatonController.PushViewController(t,true); } } 公共类基本屏幕 { public void Go

我通常使用此模式从基本屏幕类进行延迟加载:

public class BaseScreen
{
    public void Goto<T>(T t) where T : BaseScreen, new(){
        if (t == null)
            t = new T();

        NavigatonController.PushViewController(t,true);
    }
}
公共类基本屏幕
{
public void Goto(T)其中T:BaseScreen,new(){
如果(t==null)
t=新的t();
NavigationController.PushViewController(t,true);
}
}

但我遇到了我不喜欢的情况。当在构造t的过程中抛出异常时,该异常将被忽略,而您将在
t=new t()
处得到一个异常。它的意思是:
异常已由调用的目标抛出。但它没有给出任何关于真正异常发生在哪里的暗示。我试图捕捉它,但仍然没有找到任何信息。当然,最终我找到了它,但我想知道是否有办法直接捕获这些错误。我抛出异常是为了帮助我知道我是否做错了什么,但是如果我将看到的唯一异常是我前面提到的那个异常,那么这是毫无意义的。因此,我能做点什么吗?或者这只是一个糟糕的模式?

你应该检查内部异常以获得错误的真正原因

检查内部异常,而不是我所需要的,谢谢(你应该将其作为答案发布)。我认为这是正确的答案,所以它很好。