Wrap main in try catch

This commit is contained in:
AJ
2021-04-07 21:06:22 -04:00
parent f664bd79a4
commit 2b30498147

View File

@@ -13,28 +13,51 @@ namespace EtchBendLines
static void Main(string[] args) static void Main(string[] args)
{ {
var path = AppDomain.CurrentDomain.BaseDirectory; try
var files = Directory.GetFiles(path, "*.dxf", SearchOption.AllDirectories);
etcher.EtchLength = double.Parse(ConfigurationManager.AppSettings["EtchLength"]);
etcher.MaxBendRadius = double.Parse(ConfigurationManager.AppSettings["MaxBendRadius"]);
if (files == null || files.Length == 0)
{ {
Console.WriteLine($"No DXF files founds. Place DXF files in \"{AppDomain.CurrentDomain.BaseDirectory}\" and run this program again."); var path = AppDomain.CurrentDomain.BaseDirectory;
PressAnyKeyToExit(); var files = Directory.GetFiles(path, "*.dxf", SearchOption.AllDirectories);
return;
etcher.EtchLength = GetAppSettingAsDouble("EtchLength");
etcher.MaxBendRadius = GetAppSettingAsDouble("MaxBendRadius");
if (files == null || files.Length == 0)
{
Console.WriteLine($"No DXF files founds. Place DXF files in \"{AppDomain.CurrentDomain.BaseDirectory}\" and run this program again.");
}
else
{
foreach (var file in files)
{
etcher.AddEtchLines(file);
Console.WriteLine();
}
}
} }
catch (Exception ex)
foreach (var file in files)
{ {
etcher.AddEtchLines(file); Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine(); Console.WriteLine($"An error occured: {ex.Message}");
Console.ResetColor();
} }
PressAnyKeyToExit(); PressAnyKeyToExit();
} }
static double GetAppSettingAsDouble(string name)
{
double v;
try
{
return double.Parse(ConfigurationManager.AppSettings[name]);
}
catch
{
throw new Exception($"Failed to convert the value of AppSetting[\"{name}\"] to double");
}
}
static void PressAnyKeyToExit() static void PressAnyKeyToExit()
{ {
Console.WriteLine("Press any key to exit."); Console.WriteLine("Press any key to exit.");