Merge pull request #261 from Aireil/add_loaderexceptions

Log LoaderException exceptions when loading plugins
This commit is contained in:
goaaats 2021-02-15 13:30:32 +01:00 committed by GitHub
commit 32a72e41f9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 4 deletions

View file

@ -104,6 +104,11 @@ namespace Dalamud.Plugin
}
catch (Exception ex) {
Log.Error(ex, $"Plugin load for {dllFile.FullName} failed.");
if (ex is ReflectionTypeLoadException typeLoadException) {
foreach (var exception in typeLoadException.LoaderExceptions) {
Log.Error(exception, "LoaderException:");
}
}
}
}
}

View file

@ -6,6 +6,7 @@ using System.IO;
using System.IO.Compression;
using System.Linq;
using System.Net;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using CheapLoc;
@ -149,8 +150,13 @@ namespace Dalamud.Plugin
return this.dalamud.PluginManager.LoadPluginFromAssembly(dllFile, false, PluginLoadReason.Installer);
}
catch (Exception e) {
Log.Error(e, "Plugin download failed hard.");
catch (Exception ex) {
Log.Error(ex, "Plugin download failed hard.");
if (ex is ReflectionTypeLoadException typeLoadException) {
foreach (var exception in typeLoadException.LoaderExceptions) {
Log.Error(exception, "LoaderException:");
}
}
return false;
}
}
@ -287,8 +293,8 @@ namespace Dalamud.Plugin
}
}
}
catch (Exception e) {
Log.Error(e, "Plugin update failed.");
catch (Exception ex) {
Log.Error(ex, "Plugin update failed.");
hasError = true;
}