Hello,
I need help to verify my code for the tyr/catch, I want to add try/catch on the if statements to catch the errors but also to continue on error without stopping the execution. Thank you.
namespace FCCCU318SymitarPreprocessor
{
class Program
{
static void Main(string[] args)
{
if (args.Length > 0)
{
string inputFilePath;
string outputFilePath;
string inputFilePathOnly;
string fileToImport;
string strNewLine;
string reportID;
string reportName;
string reportDate;
string reportTime;
string FileName;
string FileTypeNum;
inputFilePath = args[0].ToString();
outputFilePath = args[1].ToString();
inputFilePathOnly = Path.GetDirectoryName(inputFilePath);
string inputFile = inputFilePath;
// Read Index.txt file
using (StreamReader sr = new StreamReader(inputFile))
{
string lineData;
lineData = sr.ReadLine();
while (!sr.EndOfStream)
{
lineData = sr.ReadLine();
if (lineData.Length > 6)
{
reportID = lineData.Substring(0, 6);
var isNumeric = reportID.All(c => "0123456789".Contains(c));
bool isError = false;
try
{
//if the reportId is numeric process the line
if (isNumeric)
{
//reportName is the OnBase DocType
reportName = lineData.Substring(7, 41).Trim();
if (reportName.Length > 1)
{
if (reportName.Length > 18)
{
if (reportName.Substring(0, 17).ToUpper() == "BATCH OUTPUT FOR ")
{
reportName = reportName.Substring(17);
}
}
reportDate = lineData.Substring(49, 8).Trim();
reportTime = lineData.Substring(61, 5).Trim();
FileTypeNum = "1"; //Assumption is that all the Symitar Reports are text
FileName = reportID; //Assumption is that the reportID will always be the file name without an extension
fileToImport = inputFilePathOnly + @"\" + FileName;
try
{
if (new FileInfo(fileToImport).Length > 0)
{
// reportName used for DocType and for the Report Name Keyword Type
// DocType hard coded to Symitar Reports Temp as DocType is assigned form the Report Name in the DocType Assignment Workflow
strNewLine = reportID + "|" + "FCCCUReports" + "|" + reportName + "|" + reportDate + "|" + reportDate + " " + reportTime + "|" + FileTypeNum + "|" + FileName;
using (StreamWriter sw = new StreamWriter(outputFilePath, true))
{
sw.WriteLine(strNewLine);
}
}
}
catch
{
isError = true;
}
if (isError) continue;
}
}
}
catch
{
continue;
}
if(isError) continue;
}
}
Environment.ExitCode = 0;
}
}
}
}
}

Jithu ThomasPosted Jun 21, 2024, 7:08 PM
To add
try/catchblocks around yourifstatements and ensure the code continues execution even if an error occurs, you can nest thetry/catchblocks appropriately. Here is the modified code:I added a
bool isErrorflag to indicate whether an error has occurred within thetryblock. If an error is caught, theisErrorflag is set totrue, and thecontinuestatement is used to skip to the next iteration of thewhileloop. This ensures that the program continues execution even if an error occurs.