From 18f08b93a3402d7050abf665a3259f51d4766ac1 Mon Sep 17 00:00:00 2001 From: Evan Dixon Date: Mon, 30 Jan 2017 22:27:08 -0600 Subject: [PATCH] Made FileNotFoundException check more specific --- PKHeX.WinForms/Program.cs | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/PKHeX.WinForms/Program.cs b/PKHeX.WinForms/Program.cs index 6230ea9f5..98b4e00e4 100644 --- a/PKHeX.WinForms/Program.cs +++ b/PKHeX.WinForms/Program.cs @@ -1,5 +1,6 @@ using System; using System.IO; +using System.Reflection; using System.Threading; using System.Windows.Forms; @@ -28,14 +29,26 @@ namespace PKHeX.WinForms { StartPKHeX(); } - catch (FileNotFoundException) + catch (FileNotFoundException ex) { - MessageBox.Show("Could not locate PKHeX.Core.dll. Make sure you're running PKHeX together with its code library. Usually caused when all files are not extracted.", "PKHeX Error", MessageBoxButtons.OK, MessageBoxIcon.Stop); + // Check whether or not the exception was from missing PKHeX.Core, rather than something else in the constructor of Main + if (ex.TargetSite == typeof(Program).GetMethod(nameof(StartPKHeX), BindingFlags.Static | BindingFlags.NonPublic)) + { + // Exception came from StartPKHeX and (probably) corresponds to missing PKHeX.Core + MessageBox.Show("Could not locate PKHeX.Core.dll. Make sure you're running PKHeX together with its code library. Usually caused when all files are not extracted.", "PKHeX Error", MessageBoxButtons.OK, MessageBoxIcon.Stop); + return; + } + else + { + // Exception came from Main + throw; + } } } - static void StartPKHeX() + private static void StartPKHeX() { + // Run the application Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false);