Added Error Handling generically
B2018-113 - PDF filename based upon the procedure number. Embedded Slashes and Backslashes in the procedure number are changed to underscores as is done in PROMS. The code was giving a file-not-found error message.
This commit is contained in:
parent
9067c3c55d
commit
49b8eaa5eb
@ -16,7 +16,49 @@ namespace Baseline
|
|||||||
{
|
{
|
||||||
Application.EnableVisualStyles();
|
Application.EnableVisualStyles();
|
||||||
Application.SetCompatibleTextRenderingDefault(false);
|
Application.SetCompatibleTextRenderingDefault(false);
|
||||||
Application.Run(new frmBaseline());
|
// B2018-113 Added logic to handle errors generically
|
||||||
|
if (System.Diagnostics.Process.GetCurrentProcess().ProcessName.ToLower().EndsWith("vshost"))
|
||||||
|
{
|
||||||
|
Application.Run(new frmBaseline());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
|
||||||
|
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
|
||||||
|
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
|
||||||
|
Application.Run(new frmBaseline());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
|
||||||
|
{
|
||||||
|
MessageBox.Show((e.ExceptionObject as Exception).Message,e.ExceptionObject.GetType().FullName, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
|
||||||
|
Application.Exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
|
||||||
|
{
|
||||||
|
// Roaming folders copied to the server when the user logs off the client computer in a Domain environment.
|
||||||
|
// Windows uses the Local folder for application data that does not roam with the user. Usually this data is
|
||||||
|
// either machine specific or too large to roam. The AppData\Local folder in Windows Vista is the same as
|
||||||
|
// the Documents and Settings\username\Local Settings\Application Data folder in Windows XP.
|
||||||
|
// Windows uses the Roaming folder for application specific data, such as custom dictionaries, which are
|
||||||
|
// machine independent and should roam with the user profile. The AppData\Roaming folder in Windows Vista
|
||||||
|
// is the same as the Documents and Settings\username\Application Data folder in Windows XP.
|
||||||
|
// SpecialFolder.LocalApplicationData returns \Local & SpecialFolder.ApplicationData returns \Roaming
|
||||||
|
// for example - the SpecialFolder:
|
||||||
|
// LocalApplicationData: C:\Users\Kathy.VOLIAN0\AppData\Local
|
||||||
|
// ApplicationData: C:\Users\Kathy.VOLIAN0\AppData\Roaming
|
||||||
|
// CommonApplicationData: C:\ProgramData
|
||||||
|
// MyDocuments: C:\Users\Kathy.VOLIAN0\Documents
|
||||||
|
|
||||||
|
// The error log is created using log4Net. The variables that were tested were:
|
||||||
|
// <param name="File" value="${USERPROFILE}/My Documents/VEPROMS/ErrorLog.txt" /> - puts in document directory
|
||||||
|
// <param name="File" value="${APPDATA}/Volian/Proms2010/ErrorLog.txt" /> - puts in roaming directory
|
||||||
|
// <param name="File" value="${LOCALAPPDATA}/Temp/VEPROMS/ErrorLog.txt" /> - Vista - puts in local directory. !Exist for XP
|
||||||
|
|
||||||
|
// Decided to use 'documents directory' for error log file so that it is easily accessible by user:
|
||||||
|
MessageBox.Show( e.Exception.Message,e.Exception.GetType().FullName, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
|
||||||
|
Application.Exit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -495,7 +495,8 @@ namespace Baseline
|
|||||||
private string OpenPDF(string line)
|
private string OpenPDF(string line)
|
||||||
{
|
{
|
||||||
int page = int.Parse(line.Substring(0, 6));
|
int page = int.Parse(line.Substring(0, 6));
|
||||||
line = line.Substring(8, line.IndexOf(".S") - 8);
|
// B2018-113 - Replace slashes and backslashes with underscores just as PROMS does when creating a PDF file.
|
||||||
|
line = line.Substring(8, line.IndexOf(".S") - 8).Replace("/", "_").Replace("\\", "_");
|
||||||
FindFile ff = lbDifferent.SelectedItem as FindFile;
|
FindFile ff = lbDifferent.SelectedItem as FindFile;
|
||||||
FileInfo fi1 = new FileInfo(ff.File1);
|
FileInfo fi1 = new FileInfo(ff.File1);
|
||||||
FileInfo fi2 = new FileInfo(ff.File2);
|
FileInfo fi2 = new FileInfo(ff.File2);
|
||||||
@ -593,7 +594,8 @@ namespace Baseline
|
|||||||
/// <param name="list"></param>
|
/// <param name="list"></param>
|
||||||
private void OpenOnePDF(Line myLine, int list)
|
private void OpenOnePDF(Line myLine, int list)
|
||||||
{
|
{
|
||||||
string proc = myLine.MyProc.Number;
|
// B2018-113 - Replace slashes and backslashes with underscores just as PROMS does when creating a PDF file.
|
||||||
|
string proc = myLine.MyProc.Number.Replace("/","_").Replace("\\","_");
|
||||||
int pagenum = myLine.MyPage.Number;
|
int pagenum = myLine.MyPage.Number;
|
||||||
FindFile ff = lbDifferent.SelectedItem as FindFile;
|
FindFile ff = lbDifferent.SelectedItem as FindFile;
|
||||||
FileInfo fi1 = new FileInfo(ff.File1);
|
FileInfo fi1 = new FileInfo(ff.File1);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user