Shamil Salakhetdinov
shamil at smsconsulting.spb.ru
Sat Jul 24 00:16:12 CDT 2010
John,
You can make it like that also:
using (reader = file.OpenText())
{
reader.Read(source, 0, length);
}
Then 'finally' code block will not be needed as reader will be
"automagically" closed by its IDispose call on exit of using code block...
-- Shamil
-----Original Message-----
From: dba-vb-bounces at databaseadvisors.com
[mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby
Sent: Friday, July 23, 2010 11:51 PM
To: VBA
Subject: [dba-VB] C# - but what happened to catch?
http://www.jaggersoft.com/pubs/ExceptionHandlingInCSharp.htm
So they work down through this thing and finally declare "it finally works"
but where is the catch?
I thought the whole point of a try was to do error handling in a catch?
finally?
One way to solve this problem is to guard the call to reader.Close(). A
fourth attempt therefore
might be:
private static char[] ReadSource(string filename)
{
TextReader reader = null;
char[] source;
try
{
FileInfo file = new FileInfo(filename);
int length = (int)file.Length;
source = new char[length];
reader = file.OpenText();
reader.Read(source, 0, length);
}
finally
{
if (reader != null)
{
reader.Close();
}
}
return source;
}
Of course, the guard on reader.Close() isn't in the "ideal" version of
ReadSource. But this is a
reasonable version if only because it does, finally, work.
Well.. except that there is no catch.
Sigh!
--
John W. Colby
www.ColbyConsulting.com
_______________________________________________
dba-VB mailing list
dba-VB at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/dba-vb
http://www.databaseadvisors.com