ここでの最初の質問です。私は英語があまり得意ではありません。ご容赦ください。
ユーザーが「ドライバー」とやり取りするスクリプトを作成できるようにするアプリケーションを作成しています。スクリプトとドライバーはすべて別個のクラス ライブラリ 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;
}
}
}