C#在另一个函数中替代try-catch

我正在使用从互联网上获取的dll来利用C#中的网络摄像头。如果找不到连接的网络摄像头,我将显示类似“无法找到要使用的摄像头。请确认当前没有其他应用程序在使用您的摄像头,然后重试”。我遇到的问题是dll的创建者在其dll编程中包含了try-catch ...因此,我的try-catch从未见过例外,因为“引用的对象未设置为对象的实例”而是显示错误(通过try / catch格式化为MessageBox)。有什么办法可以在显示消息并显示自己的消息之前覆盖内置错误处理?     
已邀请:
        如果您正在获得“未将引用的对象设置为对象的实例”(
NullReferenceException
),则很可能它们实际上没有捕获到异常。 如果您想抓住确切的情况(并让其他您不知道且无法处理的错误掉线-进行异常处理的正确方法),则可以尝试使用包含的堆栈信息来解决问题有这个特例:
class Program
{
    public static void DoSomething()
    {
        string blah = null;
        Console.WriteLine(blah.Length);
    }

    static void Main(string[] args)
    {
        try
        {
            DoSomething();
        }
        catch (NullReferenceException e)
        {
            string methodName = e.TargetSite.Name;
            Console.WriteLine(methodName);

            System.Diagnostics.StackTrace trace =
                new System.Diagnostics.StackTrace(e, true);

            int lineNumber = trace.GetFrame(0).GetFileLineNumber();
            Console.WriteLine(lineNumber);

            if(methodName == \"DoSomething\" && lineNumber == 13)
            {
                ShowErrorToUser(); // Todo: Implement this
            }
            else
            {
                throw; // Just re-throw the error if you don\'t know where it came from
            }
        }
    }
}
编辑 在评论中发现它确实被捕获,并显示在消息框中。 我将保留此答案,因为它适用于类似情况,但不适用于此情况。请参阅OscarMK的答案。     
        您不能仅覆盖try-catch块,但是可以覆盖该方法,并基本上执行先前方法所做的所有操作并删除try-catch块。     

要回复问题请先登录注册