내 첫 번째 질문은 여기에 try 블록이 C#에서 예외 내가 영어에서 위대한하지 않다 그래서 나와 함께 곰하시기 바랍니다다시 발생
나는 사용자가 '드라이버'와 인터페이스하는 스크립트를 작성할 수있는 응용 프로그램을 쓰고 있어요 , 스크립트 및 드라이버는 모두 별도의 클래스 라이브러리 DLL입니다. 이러한 클래스는 전달 된 콜백 대리자를 통해 통신하므로 컴파일시에는 연결되지 않습니다.
예 : (스크립트) -> ( 통신을 처리하는 프로그램) -> (드라이버)
지금 내 질문은 :
이 스크립트를 통해 방법을 실행하면 대리자가 예외를 throw하면 예외가 스크립트에 다시 표시되고 try-catch 블록에서 예외를 catch하면 사용자가 처리 할 수 있습니다. 그렇지 않으면 예외가 내 프로그램에서 발견되어야합니다.
그것은이 같은 잘 작동하지만이 갈 수있는 올바른 방법 인 경우 나도 몰라 :
이catch (Exception e)
{
Console.WriteLine("Script did not handle exception: " + e.Message);
return null;
}
스크립트는 결코 :
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;
}
}
}
이 [Link] (http://stackoverflow.com/questions/7890461/how-to-rethrow-a-prior-exception-from-inside-a-nested-try-catch-block)에서 답을 찾으십시오. -c), 여기에서 답을 찾길 바랍니다. 희망이 작동합니다. – Rahul