我在这里的第一个问题,我的英语不太好,所以请多多包涵,
我正在编写一个应用程序,允许用户编写与“驱动程序”接口的脚本,脚本和驱动程序都是独立的类库 dll。这些类通过传递的回调委托进行通信,因此在编译时它们没有链接。
示例:(脚本)-->(处理通信的程序)-->(驱动程序)
现在我的问题是:
当脚本通过委托执行方法并抛出异常时,异常会冒泡回脚本,如果用户在 try-catch 块中捕获它,则用户可以处理它,如果没有,则必须捕获异常在我的程序里面。
它像这样工作正常,但我不知道这是否是正确的方法:
delegate object ScriptCallbackDelegate(string InstanceName, string MethodName, object[] Parameters);
static private object ScriptCallbackMethod(string InstanceName, string MethodName, object[] Parameters)
{
try
{
return InterfaceWithDriver(InstanceName, MethodName, Parameters);
}
catch( Exception e )
{
try
{
throw;
}
catch
{
Console.WriteLine("Script did not handle exception: " + e.Message);
return null;
}
}
}