例外処理

例外とその補足に関しては既にかなり一般的だと思っていたんですけどこんなコードを今日見せられてちょっと目眩いがしました。

//in C#
FileStream fs = new FileStream("Test.xml", FileMode.Open, FileAccess.Write, FileShare.Read));
DataSet ds = new DataSet();
try
{
    ds.ReadXml(fs);
}
catch (Exception ex)
{
    //MessageBox.Show(ex.Message);
}
DataRow row = ds.Tables[0].NewRow();
〜
fs.Close();

ds.Tables[0]の行で"テーブルが見つかりません"とエラーが出るんですけど、と聞かれたのでこの手の問題ではよくあるXMLの型(スキーマ)の問題かと思ったら単純な原因が別な所に※。例外処理を隠すから発見が遅れたってのをあまり気にしていないのに困りました。
(....まずはtry〜finallyやusing()〜等のリソース保護ブロック使ってくれよと言いたいのですが。)

OJTや外部研修でJavaだの.NETだの案件にフォーカスした教育するのはいいけれどまずは現代のプログラミングに関するリテラシを教育する方が先ではないでしょうか。

※このサンプルはXMLファイルTest.xml(データ構造は正しく尚且つ対応するスキーマがインライン定義されているものとする)を新しいデータセットで読込むと必ず例外が発生します。それは何故でしょう。