Added Error Handling code

Added a new parameter to SaveSectionDocument and Error Handling
Changed error handling for InvokeMember to throw an exception
Added code to change the view to PrintMode when determining length
This commit is contained in:
Rich 2010-04-21 20:55:28 +00:00
parent 1741b0e3e0
commit 2c14e4113b
4 changed files with 43 additions and 22 deletions

View File

@ -79,16 +79,7 @@ namespace DataLoader
// See if there is PSI and if so, add it to the xml. // See if there is PSI and if so, add it to the xml.
OleDbDataAdapter dapsi = new OleDbDataAdapter("select * from [" + dr["entry"] + "] where [STEP] is null", cn); OleDbDataAdapter dapsi = new OleDbDataAdapter("select * from [" + dr["entry"] + "] where [STEP] is null", cn);
int handleBefore = HandleCount; int handleBefore = HandleCount;
try TryToLoadDataSet(ds, fname, dapsi);
{
dapsi.Fill(ds);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
//Application.Exit();
throw ex; // Exit from Data Loader
}
int handleAfter = HandleCount; int handleAfter = HandleCount;
if (!RunWithDB2K && handleAfter - handleBefore > 10) if (!RunWithDB2K && handleAfter - handleBefore > 10)
{ {
@ -268,6 +259,40 @@ namespace DataLoader
ds.Dispose(); ds.Dispose();
return itm; return itm;
} }
private static void TryToLoadDataSet(DataSet ds, string fname, OleDbDataAdapter dapsi)
{
try
{
dapsi.Fill(ds);
}
catch (Exception ex)
{
FileInfo fi;
switch (ex.Message)
{
case "Index file not found.":// then delete inf file
fi = new FileInfo(fname.ToLower().Replace(".dbf",".inf"));
fi.Delete();
TryToLoadDataSet(ds, fname, dapsi); // Try again
break;
case "External table is not in the expected format.": // then pad dbt file with 128 zeros.
fi = new FileInfo(fname.ToLower().Replace(".dbf", ".dbt"));
FileStream fs = fi.OpenWrite();
fs.Position = fs.Length;
byte[] buf = new byte[128];
for (int i = 0; i < 128; i++) buf[i] = 0;
fs.Write(buf, 0, 128);
fs.Close();
TryToLoadDataSet(ds, fname, dapsi); // Try again
break;
default: // Unrecognized error
Console.WriteLine(ex.Message);
//Application.Exit();
throw new Exception("Error in MigrateProcedure: " + fname, ex);
}
}
}
private bool dB2KInstalled() private bool dB2KInstalled()
{ {
Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"software\dBase\dB2K"); Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"software\dBase\dB2K");
@ -316,7 +341,7 @@ namespace DataLoader
catch (Exception ex) catch (Exception ex)
{ {
_MyLog.ErrorFormat("MigrateProcedures - {0} - {1}\r\n\r\n{2}", pth,ex.Message, ex.InnerException); _MyLog.ErrorFormat("MigrateProcedures - {0} - {1}\r\n\r\n{2}", pth,ex.Message, ex.InnerException);
throw ex; throw new Exception("Error in MigrateProcedures: " + pth, ex);
} }
return FirstItm; return FirstItm;
} }

View File

@ -71,7 +71,7 @@ namespace DataLoader
string thenum = num.ToString("d2"); string thenum = num.ToString("d2");
fname = string.Format("{0}\\rtffiles\\{1}.A{2}", pth, ProcFileName, thenum); fname = string.Format("{0}\\rtffiles\\{1}.A{2}", pth, ProcFileName, thenum);
Application.DoEvents(); Application.DoEvents();
SaveSectionDocument(fname, stpseq, SecType, ref Documentid); SaveSectionDocument(fname, stpseq, SecType, ref Documentid, procitem.DisplayNumber + ":" + (Number == string.Empty ? Title : Number));
if (Documentid == 0) if (Documentid == 0)
{ {
if (MissingDocument==null) MissingDocument = Document.MakeDocument("MISSING FILE IN CONVERSION", null, null, null); if (MissingDocument==null) MissingDocument = Document.MakeDocument("MISSING FILE IN CONVERSION", null, null, null);
@ -453,6 +453,8 @@ namespace DataLoader
} }
} }
Item secitem = AddSection(procitem, num, title, stype, dts, init, ci, step + sequence, fmt, libDocid, pth, FromItem, sectFormat); Item secitem = AddSection(procitem, num, title, stype, dts, init, ci, step + sequence, fmt, libDocid, pth, FromItem, sectFormat);
if (secitem == null)
throw (new Exception("Null parameter in AddSection"));
thesectid = secitem.ItemID; thesectid = secitem.ItemID;
// if the editsectid hasn't been set yet, set it to this section id, i.e. the first // if the editsectid hasn't been set yet, set it to this section id, i.e. the first

View File

@ -42,15 +42,7 @@ namespace LBWordLibrary
} }
catch (Exception ex) catch (Exception ex)
{ {
StringBuilder sb = new StringBuilder(); throw new Exception(string.Format("LBComObject.DoInvokeMember {0}.{1}", _MyType.Name, name), ex);
sb.Append(string.Format("{0}.{1} {2} - {3}", _MyType.Name, name, bf.ToString(), ex.GetType().Name));
string prefix = "\r\n ";
do
{
sb.Append(prefix + ex.Message);
ex = ex.InnerException;
} while (ex != null);
Console.WriteLine(sb.ToString());
} }
return null; return null;
} }

View File

@ -263,6 +263,8 @@ namespace LBWordLibrary
{ {
get get
{ {
ActiveWindow.ActivePane.View.Type = LBWdViewType.wdPrintView;
ActiveWindow.View.Type = LBWdViewType.wdPrintView;
LBPages myPages = ActiveWindow.ActivePane.Pages;// Start with pages LBPages myPages = ActiveWindow.ActivePane.Pages;// Start with pages
float retval = (float)myPages.Count - 1; float retval = (float)myPages.Count - 1;
LBRange myRange = Range(); LBRange myRange = Range();
@ -485,7 +487,7 @@ namespace LBWordLibrary
string previous = LBDocumentClass.GetRangeText(myRange); string previous = LBDocumentClass.GetRangeText(myRange);
if (Regex.IsMatch(previous, "[A-Z]")) return true; if (Regex.IsMatch(previous, "[A-Z]")) return true;
if (Regex.IsMatch(previous, "[a-z]")) return false; if (Regex.IsMatch(previous, "[a-z]")) return false;
start = start - 1; start = start - 1;
} }
return false; return false;
} }