Here's how I handle remoting, and the exception thrown in the ProcessFile method gets caught by the calling program.
Code:
try
{
	System.Runtime.Remoting.ObjectHandle handle = 
		Activator.CreateInstanceFrom("assemblyFile","typeName");

	IFileProcessor processor = handle.Unwrap();
	processor.ProcessFile("",null);

}
catch (System.Exception ex)
{
	//handle exception
}