Why don't you use methods and properties associated with the Exception variable to determine exactly what the error is? Just because your program compiles correctly, doesn't mean that there will be no runtime errors. Determining the error thrown will be the first step towards correcting your code.
I'm not familiar with syntax or structure of C#, but from my experience with other languages you could try something like this:
catch(Exception ex)
{
field1.text = ex.errorDescription();
}
You would have to check your C# documentation on the Exception object to determine how to use it better, but you are throwing away a lot of valuable information by not using it.
---------------
Matt Faus
Matt Faus / Microsoft InfoPath MVPQdabra® Software / Streamline data gathering to turn process into knowledge