Plugins: Disable plugin automatically if it throws an exception
This commit is contained in:
@@ -234,7 +234,7 @@ namespace Il2CppInspector.CLI
|
|||||||
// Set plugin handlers
|
// Set plugin handlers
|
||||||
PluginManager.ErrorHandler += (s, e) => {
|
PluginManager.ErrorHandler += (s, e) => {
|
||||||
Console.Error.WriteLine($"The plugin {e.Error.Plugin.Name} encountered an error while executing {e.Error.Operation}: {e.Error.Exception.Message}."
|
Console.Error.WriteLine($"The plugin {e.Error.Plugin.Name} encountered an error while executing {e.Error.Operation}: {e.Error.Exception.Message}."
|
||||||
+ " The application will continue but may not behave as expected.");
|
+ " Plugin has been disabled.");
|
||||||
};
|
};
|
||||||
|
|
||||||
PluginManager.StatusHandler += (s, e) => {
|
PluginManager.StatusHandler += (s, e) => {
|
||||||
|
|||||||
@@ -262,6 +262,10 @@ namespace Il2CppInspector
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
catch (Exception ex) {
|
catch (Exception ex) {
|
||||||
|
// Disable failing plugin
|
||||||
|
Plugins[plugin.Id].Enabled = false;
|
||||||
|
|
||||||
|
// Forward error to error handler
|
||||||
eventInfo.Error = new PluginErrorEventArgs { Plugin = plugin, Exception = ex, Operation = typeof(I).Name };
|
eventInfo.Error = new PluginErrorEventArgs { Plugin = plugin, Exception = ex, Operation = typeof(I).Name };
|
||||||
ErrorHandler?.Invoke(AsInstance, eventInfo);
|
ErrorHandler?.Invoke(AsInstance, eventInfo);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user